请哪位高手给出用c#实现数据库备份 恢复的完整示例
解决方案 »
- 判断pdf文件?
- 在数据库中插入HTML代码
- .bat 问题
- 菜鸟发问,高手尽情接分!
- 请教一个正则表达式的写法:不含有单引号"'"的字符串~
- 序列化问题.
- 急急!!在DataGrid上直接添加一条记录再update后不成功?
- 水晶报表出现问题请高手指点(誰帮小弟解决了小弟把分全送)郁闷了十多天了呀,,,急!!!!
- “System.Web.UI.WebControls.DataGrid”并不包含“TestCommand”的定义
- 请问怎么在pictureBox中加scrollbar呢?
- 如何使用C#遍历html控件?不是vs.net控件。谢谢。
- 想调用excel打开一文件,然后另存为其它文件,请问如何做?
{
//引用SQLDMO.dll,SQLDMO由Microsoft SQL Server自带的SQLDMO.dll提供,SQLDMO.dll是一个COM对象
SQLDMO.Backup backup=new SQLDMO.BackupClass();
SQLDMO.SQLServer sqlserver=new SQLDMO.SQLServerClass();
sqlserver.LoginSecure=false;
sqlserver.Connect("localhost","sa","1");
backup.Action=SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
backup.Database="userdb";
backup.Files=@"E:\Project\data\userdb.bak";
backup.BackupSetName="userdb";
backup.BackupSetDescription="数据库备份";
backup.Initialize=true;
backup.SQLBackup(sqlserver);
}private void Button4_Click(object sender, System.EventArgs e)
{
SQLDMO.Restore restore=new SQLDMO.RestoreClass();
SQLDMO.SQLServer sqlserver=new SQLDMO.SQLServerClass();
sqlserver.LoginSecure=false;
sqlserver.Connect("192.168.19.25","sa","sa"); restore.Action=SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
restore.Database="userdb";
restore.Files=@"E:\Project\data\userdb.bak";
restore.BackupSetName="userdb";
restore.FileNumber=1;
restore.SQLRestore(sqlserver);
}
关键是2句SQL语句:
备份:backup database 数据库 to disk='c:\你的备份文件名'
恢复:restore database 数据库 from disk='c:\你的备份文件名'--示例(在C#里备份数据库):
在头部添加using System.Data.SqlClient ;--实现代码:
SqlConnection sqlConn = new SqlConnection ("server=服务器名;database=数据库名;uid=数据库用户名;pwd=数据库用户密码");
sqlConn.Open ();
string strSQL=@"backup database 数据库 to disk='c:\你的备份文件名'";
SqlCommand sqlCmd = new SqlCommand (strSQL,sqlConn);
sqlCmd.ExecuteNonQuery();
sqlCmd.Dispose ();
sqlConn.Close ();--恢复时将string strSQL=@"backup database 数据库 to disk='c:\你的备份文件名'";
替换成
string strSQL=@"restore database 数据库 from disk='c:\你的备份文件名'";
即可
这里的 c:\你的备份文件名 中的C是指SQL SERVER服务器上的C,而不是你本地机器的C
恢复:restore database 数据库 from disk='c:\你的备份文件名'