想做个备份SQL的
public void SQLBACK(string ServerIP, string LoginName, string LoginPass, string DBName, string BackPath)
        {
            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            try
            {
                oSQLServer.LoginSecure = false;
                oSQLServer.Connect(ServerIP, LoginName, LoginPass);
                oBackup.Database = DBName;
                oBackup.Files = BackPath;
                oBackup.BackupSetName = "数据库";
                oBackup.BackupSetDescription = "数据库备份";
                oBackup.Initialize = true;
                oBackup.SQLBackup(oSQLServer);
            }
            catch (Exception e)
            {
                Response.Write(e.Message);
            }
            finally
            {
                oSQLServer.DisConnect();
            }
        }
SQLDMO.Backup里的Backup可以调出来,但是却报错,说缺少SQLDMO命名空间?
我引用了SQLDMO.DLL,它保存在了bin文件夹下面是不是这样的
请大虾们指教

解决方案 »

  1.   

    using  SQLDMO ;吗?
      

  2.   

    另:在WindowsApplication里可以正确的引用
    我现在想在ASPX页面来引用dll,是上面的错误,是不是我的方法错了
      

  3.   

    你好 我引用的时候就出现,using  SQLDMO;这句的错误?
      

  4.   

    那也要添加引用啊
    要不就是没有using
      

  5.   

    SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中当然也包括对数据库的备份和恢复。    SQLDMO由Microsoft SQL Server自带的SQLDMO.dll提供,由于SQLDMO.dll是一个COM对象,所以大家在用之前必须在.NET项目中添加对它的引用。    下面是用C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类:using System;
    namespace DbService
    {
     ///
     /// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
     ///
     public sealed class DbOper
     {
      ///
      /// DbOper类的构造函数
      ///
      private DbOper()
      {
      }
      ///
      /// 数据库备份
      ///
      public static void DbBackup()
      {
       SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
       SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
       try
       {
        oSQLServer.LoginSecure = false;
        oSQLServer.Connect("localhost", "sa", "1234");
        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();
       }
      }
      ///
      /// 数据库恢复
      ///
      public static void DbRestore()
      {
       SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
       SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
       try
       {
        oSQLServer.LoginSecure = false;
        oSQLServer.Connect("localhost", "sa", "1234");
        oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
        oRestore.Database = "Northwind";
        oRestore.Files = @"d:Northwind.bak";
        oRestore.FileNumber = 1;
        oRestore.ReplaceDatabase = true;
        oRestore.SQLRestore(oSQLServer);
       }
       catch
       {
        throw;
       }
       finally
       {
        oSQLServer.DisConnect();
       }
      }
     }
    }
      

  6.   

    LS的朋友你好 我有这个方法 现在的意思是引用SQLDMO.dll出了问题
    我添加引用---bin下面就有Interop.SQLDMO.dll
    我在.cs页面开始调用SQLDMO,打SQLDMO没有提示,但敲个.的时候就有Backup 等等出来了
    我浏览的时候就出现 找不到类型或命名空间名称“SQLDMO”(是否缺少 using 指令或程序集引用?) 的错误
    我找了用这种方法 [DllImport(@"XX")] 就是 必须在标记为“static”和“extern”的方法上指定 DllImport 属性这种错误 望解决谢谢
      

  7.   

    可以放在那个错误上,可以看到引用那个空间 ,你引用了using System.Data.SqlClient;
    using System.Data.Sql;了吗
      

  8.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Runtime.InteropServices;
    using System.Reflection;
    using System.Data.SqlClient;
    using System.Data.Sql;SQLDMO这个也可以显示出来了,却还是报缺少 SQLDMO 命名空间 真的疯了
    反射也用了(只是加载dll进来 还不怎么会用)
    很奇怪的是:缺少命名空间SQLDMO  但是又有代码提示 
      

  9.   

    项目右键添加引用了吗DLL了吗?不行在生成一下解决方案。试试,再不行重启一下试试
      

  10.   

    你的客户机有装 SqlServer吗,sqlmdo是SqlServer里面的控件
      

  11.   

    解决方案:备份的页面要和bin目录同级
      

  12.   

    我用的ASP ,也是这种问题能不能详细一点,告诉我一下。谢谢了。
    急用,拜求!!!!