C#实现数据库的备份与还原
2008-04-20 17:06
555 查看
***************************************数据库备份******************************
方法一:(需引用sqldmo.dll)
public static void DbBackup()
...{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
...{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "sa", "1234");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = "Northwind";
oBackup.Files = @"d:Northwind.bak";
oBackup.BackupSetName = "Northwind";
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch
...{
throw;
}
finally
...{
oSQLServer.DisConnect();
}
}
方法二:
在事件里填写如下
SaveFileDialog sfd = new SaveFileDialog();
string backPath ="";
sfd.Filter= "*.bak|*.bak|*.back|*.back" ;
sfd.InitialDirectory=@"C:";
sfd.FilterIndex=1;
sfd.RestoreDirectory=true;
if(sfd.ShowDialog()==DialogResult.OK)
...{
backPath = sfd.FileName.ToString();
SqlConnection con =li.createCon();
SqlCommand cmdBK = new SqlCommand();
cmdBK.CommandType = CommandType.Text;
cmdBK.Connection = con;
cmdBK.CommandText = @"backup database GJJ to disk='"+backPath+"' with init";
try
...{
con.Open();
cmdBK.ExecuteNonQuery();
MessageBox.Show("数据库备份成功","数据库备份",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
catch(Exception ex)
...{
MessageBox.Show(ex.Message);
}
finally
...{
con.Close();
con.Dispose();
}
}
**************************************数据库还原********************************************
在使用这个方法之前先引用sqldmo.dll
还原数据库#region 还原数据库
private void btn_ReBack_Click(object sender, System.EventArgs e)
...{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter= "*.bak|*.bak|*.back|*.back" ;
ofd.FilterIndex=1;
ofd.InitialDirectory=@"C:";
if(ofd.ShowDialog()==DialogResult.OK)
...{
string backuppath = ofd.FileName.ToString();
this.DbRestore(backuppath);
}
}
#endregion
用于数据库还原的方法#region 用于数据库还原的方法
public void DbRestore(string backuppath)
...{
int Success=0;
string DataBaseAddr = ConfigurationSettings.AppSettings["DatabaseAddr"];
string DataBasePwd = ConfigurationSettings.AppSettings["Pwd"];
string DataBaseUid = ConfigurationSettings.AppSettings["Uid"];
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
...{
do
...{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(DataBaseAddr, DataBaseUid, DataBasePwd);
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = "GJJ";
oRestore.Files = backuppath;
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
DialogResult result = MessageBox.Show("此操作将修改之前所有的数据。您确定要还原数据库吗?","警告",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
if(result==DialogResult.OK)
...{
this.ExcuteProcedure();
oRestore.SQLRestore(oSQLServer);
Success=1;
MessageBox.Show("数据库还原成功!","数据库还原",MessageBoxButtons.OK,MessageBoxIcon.Warning);
break;
}
else
...{
MessageBox.Show("未进行数据库还原!","数据库还原",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
while(Success==0);
}
catch(Exception ex)
...{
MessageBox.Show(ex.Message);
MessageBox.Show("数据库还原失败!","数据库还原",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
finally
...{
oSQLServer.DisConnect();
}
}
#endregion
调用killspid存储过程,杀掉进程(注意:此存储过程放在master库中,下面的连接字符串连接到此库)#region 调用killspid存储过程,杀掉进程(注意:此存储过程放在master库中,下面的连接字符串连接到此库)
private void ExcuteProcedure()
...{
SqlConnection conn1 = new SqlConnection(ConfigurationSettings.AppSettings["LinkToMaster"]);
SqlCommand cmd = new SqlCommand("killspid",conn1);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@dbname","GJJ");
try
...{
conn1.Open();
cmd.ExecuteNonQuery();
}
catch(Exception ex)
...{
MessageBox.Show(ex.Message);
}
finally
...{
conn1.Close();
}
}
#endregion
相关文章推荐
- C#实现数据库名称获取、数据库备份和还原
- C#备份及还原数据库的实现
- C#实现数据库的备份与还原
- C#实现数据库的备份和还原
- c# winform 实现对postgresql数据库的自动备份还原功能
- 【C#】数据库备份及还原的实现代码【转载】
- C#备份及还原数据库的实现代码(粗略) // 利用C#还原数据库(SQL SERVER)备份文件到指定路径
- 数据库备份与还原的C#实现
- [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。 (香神无涯) // C#实现SQLSERVER2000数据库备份还原的两种方法 (带进度条)
- 数据库备份与还原c#.net实现
- 通过c# 实现mysql 数据库的备份和附加
- T-SQL语句实现数据库备份与还原
- WPF C#开发中利用SQLDMO进行数据库备份还原操作中的注意点
- 自用mysql自带命令实现数据库备份还原的方法
- T-SQL语句实现数据库备份与还原
- 利用T-SQL语句,实现数据库的备份与还原的功能
- 利用T-SQL语句,实现数据库的备份与还原的功能
- WinForm c# 备份 还原 数据库(Yc那些事儿 转)
- c# .NET 进行数据库备份和还原
- Asp.net 不使用SQLDMO实现数据库备份和还原