客户机上没有安装SQL SERVER我用
private string[] Getallservers()
        {
            string[] servers;
            SQLDMO.NameList num;
            SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
            num = rs.ListAvailableSQLServers();
            servers = new string[num.Count];
            for (int i = 1; i <= num.Count; i++)
            {
                servers[i - 1] = num.Item(i);
            }
            return servers;        } 
这种方法是不行的, 在SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
处会出错的,可能是客户机上没有安装SQL SERVER的缘故,有没有那种办法可以实现?

解决方案 »

  1.   

    下面的控制台应用程序显示本地网络内的所有可用 SQL Server 2005 实例的列表。该代码使用 Select 方法筛选 GetDataSources 方法返回的表中的行。
    using System.Data.Sql;class Program
    {
      static void Main()
      {
        // Retrieve the enumerator instance, and
        // then retrieve the data sources.
        SqlDataSourceEnumerator instance =
          SqlDataSourceEnumerator.Instance;
        System.Data.DataTable table = instance.GetDataSources();    // Filter the sources to just show SQL Server 2005 instances.
        System.Data.DataRow[] rows = table.Select("Version LIKE '9%'");
        foreach (System.Data.DataRow row in rows)
        {
          Console.WriteLine(row["ServerName"]);
        }
        Console.WriteLine("Press any key to continue.");
        Console.ReadKey();
      }
    }SqlDataSourceEnumerator 类 注意:此类在 .NET Framework 2.0 版中是新增的。 提供了一种枚举本地网络内的所有可用 SQL Server 实例的机制。 命名空间:System.Data.Sql
    程序集:System.Data(在 system.data.dll 中)public sealed class SqlDataSourceEnumerator : DbDataSourceEnumerator备注
    SQL Server 2000 和 SQL Server 2005 都允许应用程序确定当前网络内是否存在 SQL Server 实例。SqlDataSourceEnumerator 类将这些信息向应用程序开发人员公开,提供一个包含有关所有可用服务器的信息的 DataTable。此返回表包含一个服务器实例列表,该列表与用户尝试创建新连接时提供的列表匹配,并在“连接属性”对话框上扩展包含所有可用服务器的下拉列表。继承层次结构
    System.Object 
       System.Data.Common.DbDataSourceEnumerator 
        System.Data.Sql.SqlDataSourceEnumerator线程安全
    此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
    平台
    Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。版本信息
    .NET Framework
    受以下版本支持:2.0请参见
    参考
    SqlDataSourceEnumerator 成员
      

  2.   

    To:水月流影
    我试了一下安装过SQL Server的电脑是可以获取到的,没有安装SQL Server的电脑是获取不到的.