可能很多朋友看到标题以后,就会说备份、恢复数据库有什么难得,传个命令不就搞定了。我以前也是这么认为,不过今天在做这个功能的时候,项目经理给了个更好的方法,以前没遇到过啊(还是比较菜啊)!所以在这里记录一下吧,也供大家参考之用。
如下:
Backup Code
SqlConnection conn = new SqlConnection("ConnectionString!"); Server dbServer = new Server(new ServerConnection(conn)); Backup backupMgr = new Backup(); backupMgr.Devices.AddDevice("E:/Backups/YourFile.bak", DeviceType.File); backupMgr.Database = conn.Database; backupMgr.Action = BackupActionType.Database; backupMgr.SqlBackup(dbServer);
Restore Code
SqlConnection conn = new SqlConnection("ConnectionString!"); Server dbServer = new Server(new ServerConnection(conn)); Restore restoreMgr = new Restore(); restoreMgr.Devices.AddDevice("E:/Backup/MyFile.bak", DeviceType.File); restoreMgr.Database = conn.Database; restoreMgr.Action = RestoreActionType.Database; restoreMgr.SqlRestore(dbServer);
上面红色标注的类需特别关注,备份、恢复工作就是由它们完成的。命名空间是 Microsoft.SqlServer.Management.Smo,此外需要引用两个Dll,
Microsoft.SqlServer.ConnectionInfo 版本:9.0.242.0
Microsoft.SqlServer.Smo 版本:9.0.242.0
之所以注明版本,是因为在引用10.0版本的时候没有找到BackUp类,不知为何?请高人指点啊,谢过!
好了,就写这么多吧!希望对你有用。