using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsqlexpress
{
class DataBase2
{
public delegate void PercentCompleteEventHandler();
public event PercentCompleteEventHandler PercentComplete;
//备份数据库
public void BackUPDB(string ServerName,string UserName,string Password,string strDbName, string strFileName)
{
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
try
{
svr.Connect(ServerName, UserName, Password);
SQLDMO.Backup backup = new SQLDMO.BackupClass();
backup.Action = 0;
backup.Initialize = true;
backup.PercentCompleteNotification = 10;
backup.PercentComplete += new SQLDMO.BackupSink_PercentCompleteEventHandler(myPercentComplete);
backup.Files = strFileName;
backup.Database = strDbName;
backup.SQLBackup(svr);
}
catch (Exception err)
{
MessageBox.Show("备份数据库失败!" + err.Message);
}
finally
{
svr.DisConnect();
}
}
//显示完成进度
private void myPercentComplete(string message, int percent)
{
PercentComplete();
}
//还原数据库
public bool RestoreDB(string ServerName, string UserName, string Password,string strDbName, string strFileName)
{
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
try
{
svr.Connect(ServerName, UserName, Password);
SQLDMO.Restore restore = new SQLDMO.RestoreClass();
restore.Action = 0;
restore.PercentComplete += new SQLDMO.RestoreSink_PercentCompleteEventHandler(myPercentComplete);
restore.Files = strFileName;
restore.Database = strDbName;
restore.ReplaceDatabase = true;
restore.PercentCompleteNotification = 10;
restore.SQLRestore(svr);
return true;
}
catch (Exception err)
{
MessageBox.Show("恢复数据库失败,请关闭所有和该数据库连接的程序" + err.Message);
}
finally
{
svr.DisConnect();
}
}
//public void BackupDB(string Servername, string DBName, string backupfile)
//{
// Server DBServer = new Server(Servername);
// Backup db_backup = new Backup();
// db_backup.Action = BackupActionType.Database;
// db_backup.Database = DBName;
// db_backup.Devices.Add(new BackupDeviceItem(backupfile, DeviceType.File));
// db_backup.Initialize = true;
// db_backup.Incremental = false;
// db_backup.PercentCompleteNotification = 10;
// db_backup.ContinueAfterError = true;
// db_backup.LogTruncation = BackupTruncateLogType.Truncate;
// db_backup.PercentComplete +=backup_PercentComplete;
// db_backup.Complete += backup_Complete;
// db_backup.ContinueAfterError = true;
// db_backup.SqlBackup(DBServer);
//}
}
}