2012-04-12 99 views
1

我想讓我的應用程序返回SQL Server 2008 R2 Developer/Express的實例。如何枚舉SQL Server實例

I'm使用:

System.Data.DataTable lokalni_servery = Microsoft.SqlServer.Management.Smo.SmoApplication.EnumAvailableSqlServers(); 

foreach (System.Data.DataRow row in lokalni_servery.Rows) 
{ 
    local_servers.Items.Add(row["Server"].ToString()); 
} 

在我friend's筆記本採用SQL Server 2008 R2的快遞32位,它doesn't發現了什麼,但我的筆記本上使用SQL Server 2008 R2開發64位它幾乎每次都能找到它。 我需要能夠在兩臺機器上找到這個SQL實例。

有人知道爲什麼應用程序的行爲如此嗎?

有沒有辦法改變允許筆記本找到實例的方法?

+0

有用的問題+1 - 我不能告訴你,在過去我劃我對這個頭學習有關瀏覽器服務 – 2012-04-12 23:30:30

+1

相關問題之前,坎很多次:[EnumAvailableSqlServers返回空列表] (http://stackoverflow.com/questions/7460567/enumavailablesqlservers-returns-empty-list)或者[SqlDataSourceEnumerator.Instance.GetDataSources()找不到本地SQL Server 2008實例](http://stackoverflow.com/questions/6824188/sqldatasourceenumerator-instance-getdatasources-does-not-locate-local-sql-serv)。 – 2012-04-12 23:36:16

回答

0

SmoApplication.EnumAvailableSqlServers枚舉可用的實例,這意味着服務器必須正在運行。只是他們安裝的事實是不夠的。

另外SQL Server Browser Service必須正在運行!

How to: Start and Stop the SQL Server Browser Service (SQL Server Express) MSDN上

+2

服務器還必須啓用TCP/IP,並且要找到防火牆中的例外情況。 – 2012-04-12 23:25:48