Пример #1
0
        private void backupToFile()
        {
            //lọc file để lưu file backup chỉ có đuôi .bak
            dlgSaveBackUp.InitialDirectory = "C:\\";
            dlgSaveBackUp.Filter           = "bak file(*.bak)|*.bak";
            dlgSaveBackUp.Title            = "Nhập tên file sao lưu";
            dlgSaveBackUp.FileName         = cboSourceDatabase.SelectedItem.ToString() + "_backup_" + DateTime.Now.Year + "_" + DateTime.Now.Month + "_" + DateTime.Now.Day;

            if (dlgSaveBackUp.ShowDialog() == DialogResult.OK)
            {
                //tạo một đối tượng SQLDMO.Backup để thực hiện việc backup csdl
                SQLDMO.Backup bk = new SQLDMO.Backup();
                bk.Action   = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;          //kiểu backup toàn bộ csdl
                bk.Database = cboSourceDatabase.SelectedItem.ToString();                //tên database cần backup

                //tao doi tuong backup device để lưu vào sql server, dùng lại khi restore
                SQLDMO.BackupDevice bkdv = new SQLDMO.BackupDevice();

                string logicDevicename = GetFileName(dlgSaveBackUp.FileName);
                bkdv.Name             = logicDevicename;
                bkdv.PhysicalLocation = dlgSaveBackUp.FileName;
                bkdv.Type             = SQLDMO.SQLDMO_DEVICE_TYPE.SQLDMODevice_DiskDump;  //lưu file backup vào disk


                //Lưu trữ bkdv vào sql server (tương tự lưu store procedure)
                try
                {
                    addBackupdevice(sqlSrv, bkdv, dlgSaveBackUp.FileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Can not backup database " + bk.Database, "Backup fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
//
                try
                {
                    //gắn backup device vào đối tượng backup
                    bk.Devices = "[" + bkdv.Name + "]";
                }
                catch (Exception exc)
                {
                    MessageBox.Show("The backup device already exist. Select another back up file name ! ", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                try
                {
                    //tiến hành back up csdl
                    bk.SQLBackup(sqlSrv);
                    MessageBox.Show("Successful back up full database " + bk.Database, "Backup successful", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Can not backup database " + bk.Database, "Backup fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
        }
Пример #2
0
        private void backupToFile()
        {
            //lọc file để lưu file backup chỉ có đuôi .bak
            dlgSaveBackUp.InitialDirectory = "C:\\" ;
            dlgSaveBackUp.Filter = "bak file(*.bak)|*.bak";
            dlgSaveBackUp.Title = "Nhập tên file sao lưu";
            dlgSaveBackUp.FileName = cboSourceDatabase.SelectedItem.ToString()+"_backup_"+DateTime.Now.Year+"_"+DateTime.Now.Month+"_"+DateTime.Now.Day;

            if(dlgSaveBackUp.ShowDialog() ==DialogResult.OK )
            {
                //tạo một đối tượng SQLDMO.Backup để thực hiện việc backup csdl
                SQLDMO.Backup bk=new SQLDMO.Backup();
                bk.Action =SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;//kiểu backup toàn bộ csdl
                bk.Database=cboSourceDatabase.SelectedItem.ToString() ; //tên database cần backup

                //tao doi tuong backup device để lưu vào sql server, dùng lại khi restore
                SQLDMO.BackupDevice bkdv=new SQLDMO.BackupDevice ();

                string logicDevicename= GetFileName(dlgSaveBackUp.FileName);
                bkdv.Name=logicDevicename;
                bkdv.PhysicalLocation=dlgSaveBackUp.FileName;
                bkdv.Type=SQLDMO.SQLDMO_DEVICE_TYPE.SQLDMODevice_DiskDump;//lưu file backup vào disk

                //Lưu trữ bkdv vào sql server (tương tự lưu store procedure)
                try
                {
                    addBackupdevice(sqlSrv,bkdv,dlgSaveBackUp.FileName );
                }
                catch(Exception ex)
                {
                    MessageBox.Show("Can not backup database "+bk.Database ,"Backup fail",MessageBoxButtons.OK, MessageBoxIcon.Error ) ;
                    return;
                }
            //
                try
                {
                    //gắn backup device vào đối tượng backup
                    bk.Devices ="["+bkdv.Name +"]";
                }
                catch(Exception exc)
                {
                    MessageBox.Show("The backup device already exist. Select another back up file name ! ","error",MessageBoxButtons.OK, MessageBoxIcon.Error ) ;
                    return;
                }

                try
                {
                    //tiến hành back up csdl
                    bk.SQLBackup(sqlSrv );
                    MessageBox.Show("Successful back up full database "+ bk.Database,"Backup successful",MessageBoxButtons.OK, MessageBoxIcon.Information  );
                }
                catch(Exception ex)
                {
                    MessageBox.Show("Can not backup database "+bk.Database ,"Backup fail",MessageBoxButtons.OK, MessageBoxIcon.Error ) ;
                    return;
                }

            }
        }