上网也查过了一些代码,如:
private   void   Button3_Click(object   sender,   System.EventArgs   e)   
  {   
  //引用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\meng\data\userdb.bak";   
  backup.BackupSetName="userdb";   
  backup.BackupSetDescription="数据库备份";   
  backup.Initialize=true;   
  backup.SQLBackup(sqlserver);   
  }   
不知道上面的代码是否能实现?
但上面所说到的SQLDMO.DLL这怎么引用啊?在电脑上搜索到了这个文件了,并添加到了BIN目录下,但没用。

解决方案 »

  1.   

    已经引用了。
    代码如下:
     protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection con=SqlHelper.SqlHelper.create_open();
            con.Open();
            SQLDMO.Backup backup = new SQLDMO.BackupClass();
            SQLDMO.SQLServer sqlserver = new SQLDMO.SQLServerClass();
            sqlserver.LoginSecure = false;
            sqlserver.Connect("127.0.0.1", "sa", "");
            backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
            backup.Database = System.Web.HttpContext.Current.Server.MapPath("~//App_Data//OA_Data.MDF"); ;
            backup.Files = @"D:\OA\App_Data\OA.bak";
            backup.BackupSetName = "OA";
            backup.BackupSetDescription = "数据库备份";
            backup.Initialize = true;
            backup.SQLBackup(sqlserver);
            con.Close();
            message.showmessage("备份成功!");
        }但老出现错误:[Microsoft][ODBC SQL Server Driver][SQL Server]未能在 sysdatabases 中找到数据库 'd:\OA\App_Data\OA_Data.MDF' 所对应的条目。没有找到具有该名称的条目。请确保正确地输入了名称。
    [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Runtime.InteropServices.COMException: [Microsoft][ODBC SQL Server Driver][SQL Server]未能在 sysdatabases 中找到数据库 'd:\OA\App_Data\OA_Data.MDF' 所对应的条目。没有找到具有该名称的条目。请确保正确地输入了名称。
    [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。源错误: 
    行 33:         backup.BackupSetDescription = "数据库备份";
    行 34:         backup.Initialize = true;
    行 35:         backup.SQLBackup(sqlserver);
    行 36:         con.Close();
    行 37:         message.showmessage("备份成功!");
     
    但路径没问题呀。
      

  2.   

    //
     提示这里出问题拉
    System.Web.HttpContext.Current.Server.MapPath("~//App_Data//OA_Data.MDF"); ;
    你跟踪一下啦 
      

  3.   

      
    public static void DbBackup()
      {
       SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
       SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
       try
       {
        oSQLServer.LoginSecure = false;
        oSQLServer.Connect("localhost", "sa", "123456");
        oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
        oBackup.Database = "Northwind";
        oBackup.Files = @"d:\Northwind.bak";
        oBackup.BackupSetName = "Northwind";
        oBackup.BackupSetDescription = "数据库备份";
        oBackup.Initialize = true;
        oBackup.SQLBackup(oSQLServer);
       }
       catch
       {
        throw;
       }
       finally
       {
        oSQLServer.DisConnect();
      }
      }
      

  4.   

    void backupButton_Click(object sender, System.EventArgs e)
    {
    string path = pathTextBox.Text;
    string dbname = dbDropDownList.SelectedValue; string backupSql = "use master;";
    backupSql += "backup database @dbname to disk = @path;";

    SqlCommand myCommand = new SqlCommand(backupSql, new SqlConnection(ConnStr)); myCommand.Parameters.Add("@dbname", SqlDbType.Char);
    myCommand.Parameters["@dbname"].Value = dbname;
    myCommand.Parameters.Add("@path", SqlDbType.Char);
    myCommand.Parameters["@path"].Value = path; try
    {
    myCommand.Connection.Open();
    myCommand.ExecuteNonQuery();
    infoLabel.Text = "备份成功";
    }
    catch(Exception ex)
    {
    infoLabel.Text = "备份失败<br>" + ex.ToString();
    }
    finally
    {
    myCommand.Connection.Close();
    }
    }

    void restoreButton_Click(object sender, System.EventArgs e)
    {
    string path = pathTextBox.Text;
    string dbname = dbDropDownList.SelectedValue; string restoreSql = "use master;";
    restoreSql += "restore database @dbname from disk = @path;"; SqlCommand myCommand = new SqlCommand(restoreSql, new SqlConnection(ConnStr)); myCommand.Parameters.Add("@dbname", SqlDbType.Char);
    myCommand.Parameters["@dbname"].Value = dbname;
    myCommand.Parameters.Add("@path", SqlDbType.Char);
    myCommand.Parameters["@path"].Value = path; try
    {
    myCommand.Connection.Open();
    myCommand.ExecuteNonQuery();
    infoLabel.Text = "恢复成功";
    }
    catch(Exception ex)
    {
    infoLabel.Text = "恢复失败<br>" + ex.ToString();
    }
    finally
    {
    myCommand.Connection.Close();
    }
    }
      

  5.   

    qinhl99的代码报错---->
    未能找到 ID 为 9,名称为 'OA' 的数据库表。
    Could not find database table ID 9, name 'OA'.
    已将数据库上下文改为 'master'。
    这怎么修改啊??? 
      

  6.   

    13楼的代码中:string dbname = dbDropDownList.SelectedValue;  是怎么绑定东西的???
    我用了一个FileUpload去找呀备份的数据库
      

  7.   


    //dbDropDownList绑定的是可以还原和备份的数据库列表! 
    我用了一个FileUpload去找呀备份的数据库?是什么意思?
      

  8.   

    那个数据库列表怎么绑定到dbDropDownList的呀
    我用FileUpload去找数据库啊