通过引用COM组件 Microsoft SQLDMO Library 组件实现。
比如SQLServer服务器为SQLTest,拥护名sa,密码为空,数据库为DBTest。
则备份到服务器D:\test.bak文件,C#代码如下。
SQLDMO.SQLServerClass sqldmo=new SQLDMO.SQLServerClass();//创建SQLServerClass类对象sqldmo
sqldmo.Connect("SQLTest","sa","");  //调用对象Connect方法连接服务器
SQLDMO.BackupClass sqlbakcup=new SQLDMO.BackupClass(); //创建BackupClass备份对象
sqlbakcup.Database="DBTest";  //设置备份对象的Database属性
sqlbakcup.Files="D:\\test.bak";  //备份文件名
sqlbakcup.SQLBackup(sqldmo);  //进行备份
至此,整个备份已经成功。

解决方案 »

  1.   

    写标准Sql语句,或者创建一个存储过程
    然后在SqlCommannd中执行就可以例如:
    string sql = "BACKUP DATABASE NorthWind TO 'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'"
    SqlConnection conn = ...
    SqlCommand command = new SqlCommand( sql,conn );
    command.ExecuteNonQuery();
      

  2.   

    同意dragontt,但是连接串中用户名必须是特权用户。没有测试过,通过告诉我。haha.
      

  3.   

    CREATE PROCEDURE Pbackup 
    AS
    BACKUP DATABASE NorthWind TO 'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'
    GOCREATE PROCEDURE PRestore
    AS
    RESTORE DATABASE NorthWind FROM DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'
    GO
      

  4.   

    "BACKUP DATABASE NorthWind TO 'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'"
    说有语法错误,哪里有问题?