2009-08-07 55 views
1

我試圖列出窗體上gridview中我們的網絡上可用的所有SQL Server。我有一個按鈕點擊事件的代碼。在ASP.NET中列出SQL Server實例

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance; 
System.Data.DataTable myDataTable = instance.GetDataSources(); 

gvSqlServers.DataSource = myDataTable; 
gvSqlServers.DataBind(); 

它運行但沒有顯示在gridview中,我沒有得到任何錯誤。

回答

1

作爲一個開始,我相信SQL Server必須打開SQL瀏覽功能,而且這種功能已關閉很多次。否則,我猜你的應用程序無法找到它。

當我從Windows窗體應用程序我的本地框運行你的代碼,它工作正常

我也跑在ASP.NET相同的代碼和它的工作原理也是如此。

我的猜測是,它與SQL瀏覽或可能別的東西防止SQL服務器從廣播

+0

當我在VS中使用嚮導時,它找到了服務器。如果瀏覽功能關閉,還可以找vs他們嗎? – 2009-08-07 20:02:39

+0

沒有。瀏覽器關閉時,它不起作用。 – 2009-08-07 20:36:17

1

嘗試this.It爲我工作的問題..

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance; 
DataTable dt = instance.GetDataSources(); 
DropDownList1.DataSource = dt; 
foreach (DataRow dr in dt.Rows)  
{   
     DropDownList1.Items.Add(string.Concat(dr["ServerName"], "\\", dr["InstanceName"])); 
} 

注意:在你的代碼中,你使用databind方法作爲下拉列表。對於這個 你必須提到Datatextfield和datavalue字段。我們在這裏不能提到 .So使用這個,它給出了準確的結果。