如何获取网络上可用的SQL Server列表?

RJ.*_*RJ. 2 c# sql-server asp.net

我正在尝试这个,但我不知道该怎么办.你能帮我个忙吗?

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable table = instance.GetDataSources();

foreach (var row in table.Rows)
{
     foreach (var column in table.Columns)
     {
          ddlPublisherServer.Items.Add(???);
     }
}
Run Code Online (Sandbox Code Playgroud)

哪里??? = SQL Server名称.

我如何从表中提取sql server名称?

我正在使用C#在ASP .NET中工作.

Bra*_*tie 10

好吧,如果想要查看所有可用信息,您可以迭代可用的列:

DataTable dt = SqlDataSourceEnumerator.Instance.GetDataSources();
foreach (DataRow dr in dt.Rows)
{
    foreach (DataColumn col in dt.Columns)
    {
        Console.WriteLine("{0,-15}: {1}", col.ColumnName, dr[col]);
    }
    Console.WriteLine();
}
Run Code Online (Sandbox Code Playgroud)

哪个会显示如下:

ServerName     : COMPUTER1
InstanceName   : SQLEXPRESS
IsClustered    : No
Version        : 9.00.4035.00
Run Code Online (Sandbox Code Playgroud)

那么,回答你的问题:

ddlPublisherServer.Items.Add(row[table.Columns["ServerName"]]);
Run Code Online (Sandbox Code Playgroud)

完整代码:

DataTable table = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();
foreach (DataRow server in table.Rows)
{
  ddlPublisherServer.Items.Add(server[table.Columns["ServerName"]].ToString());
}
Run Code Online (Sandbox Code Playgroud)