我的电脑已安装了sql2005,在没有局域网的情况下我试了一下方法都没有得到本机的数据库服务器(包括实例名)请帮忙看一下
第一种方法:据说sqldmo是sql2000的
            SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
            SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers();
       
            for (int i = 0; i < sqlServers.Count; i++)
            {
                object srv = sqlServers.Item(i + 1);
                if (srv != null)
                {
                    this.comboBox1.Items.Add(srv);
                }
            }
            if (this.comboBox1.Items.Count > 0)
                this.comboBox1.SelectedIndex = 0;
            else
                this.comboBox1.Text = "<No available SQL Servers>"; 
第二种方法:
            SqlDataSourceEnumerator instance =SqlDataSourceEnumerator.Instance; 
            System.Data.DataTable table = instance.GetDataSources();
            foreach (System.Data.DataRow var in table.Rows)
            {
                comboBox1.Items.Add(var["ServerName"]+"\\"+var["InstanceName"]);             }拜托了!

解决方案 »

  1.   

    http://www.codeproject.com/KB/database/locate_sql_servers.aspx
    看看这个
      

  2.   

    sqldmo好象是2000的,2005好象是没有的吧!
      

  3.   

    对,在问题中已经描述了sqldmo是2000的
      

  4.   

                Microsoft.SqlServer.Management.Smo.RegisteredServers.RegisteredServer[] rsvrs = SmoApplication.SqlServerRegistrations.EnumRegisteredServers();
                foreach (Microsoft.SqlServer.Management.Smo.RegisteredServers.RegisteredServer rs in rsvrs)
                {
                    String localserver = System.Environment.MachineName;
                    Console.WriteLine(rs.ServerInstance);            }
    已经搞定了,楼上的各位不用吵了,多没意思。
      

  5.   

         RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
            String[] instances = (String[])rk.GetValue("InstalledInstances");
            if (instances.Length > 0)
            {
               foreach (String element in instances)
               {
                  if (element == "MSSQLSERVER")
                     Console.WriteLine(System.Environment.MachineName);
                  else
                     Console.WriteLine(System.Environment.MachineName + @"\" + element);
               }
            }