2

私はこれを試していますが、どのように進めるかわかりません。手伝って頂けますか?

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

foreach (var row in table.Rows)
{
     foreach (var column in table.Columns)
     {
          ddlPublisherServer.Items.Add(???);
     }
}

どこ ???=SQLServer名。

テーブルからSQLサーバー名を抽出するにはどうすればよいですか?

私はC#を使用してASP.NETで作業しています。

4

1 に答える 1

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();
}

次のようなものが表示されます。

ServerName     : COMPUTER1
InstanceName   : SQLEXPRESS
IsClustered    : No
Version        : 9.00.4035.00

だから、あなたの質問に答えるには:

ddlPublisherServer.Items.Add(row[table.Columns["ServerName"]]);

完全なコード:

DataTable table = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();
foreach (DataRow server in table.Rows)
{
  ddlPublisherServer.Items.Add(server[table.Columns["ServerName"]].ToString());
}
于 2012-11-19T21:02:38.553 に答える