Smi*_*ley 8 c# database sql-server backup
如何以编程方式使用.bak数据库备份文件(通过SQL Server中的查询备份)?
我希望我的应用程序将我的数据库备份到一个位置(我已经可以这样做了),并且我还希望它能够加载备份的数据库(.bak文件).
我怎么能用C#做到这一点?
mar*_*c_s 15
您需要首先确保在开发框中安装了SMO(SQL Server管理对象)并可以使用它.如果您已在其上安装了某些版本的SQL Server,则通常就是这种情况.
如果您有可用的SMO库,则可以使用此代码段进行操作:
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
static void Main(string[] args)
{
// create instance of SMO Server object
Server myServer = new Server("(local)");
// create new instance of "Restore" object
Restore res = new Restore();
res.Database = "SMO"; // your database name
// define options
res.Action = RestoreActionType.Database;
res.Devices.AddDevice(@"C:\SMOTest.bak", DeviceType.File);
res.PercentCompleteNotification = 10;
res.ReplaceDatabase = true;
// define a callback method to show progress
res.PercentComplete += new PercentCompleteEventHandler(res_PercentComplete);
// execute the restore
res.SqlRestore(myServer);
}
// method to show restore progress
static void res_PercentComplete(object sender, PercentCompleteEventArgs e)
{
// do something......
}
Run Code Online (Sandbox Code Playgroud)
为此,您需要具有以下项目引用

如果安装了SMO ,则命名空间Microsoft.SqlServer.SmoExtended在程序集中实现,该程序集Microsoft.SqlServer.SmoExtended.dll应该在目录中找到C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\.
如果您尚未安装SMO,你可以从它拿来这里为SQL Server 2008或在这里为SQL Server 2008 R2(也有SQL Server 2005的旧版本)
只需使用SqlCommand.ExecuteNonQuery执行执行操作所需的SQL,例如:
BACKUP DATABASE [dbname] ......
RESTORE DATABASE [dbname] ......
Run Code Online (Sandbox Code Playgroud)
当然,有问题的SQL用户需要具有适当的权限.
| 归档时间: |
|
| 查看次数: |
13947 次 |
| 最近记录: |