请哪位高手给出用c#实现数据库备份 恢复的完整示例
解决方案 »
- 这是错在哪里呀?datatime
- 怎么解决webbrowser长时间运行后占CPU过多?
- ADO三层!~~~
- 有关数学编辑器中mathML的问题..
- 高手帮忙看看这个比较有难度的正则表达式(只有给10分权限)
- 用FILESTREAM写向磁盘写文件时,如果文件很大,或是连续性的比方说录音录象,把磁盘写满时该怎么做?
- 高分求C#ppt课件
- 请教关于WinForm里面DataGrid行列的操作!
- 请教一个MVC4.0项目添加WCF服务引用的问题
- 需要现打开一个串口即开始每隔5秒向串口发送数据!
- 如何使用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:\你的备份文件名'