簡體   English   中英

以編程方式列出SQL Server的實例

[英]programmatically list the instances of SQL Server

我有代碼來查找sql​​server的列表

 public static string[] GetSQLServerList()
        {
            SqlDataSourceEnumerator dse = SqlDataSourceEnumerator.Instance;
            DataTable dt = dse.GetDataSources();
            if (dt.Rows.Count == 0)
            {
                return null;
            }

            string[] SQLServers = new string[dt.Rows.Count];
            int f = -1;
            foreach (DataRow r in dt.Rows)
            {
                string SQLServer = r["ServerName"].ToString();
                string Instance = r["InstanceName"].ToString();
                if (Instance != null && !string.IsNullOrEmpty(Instance))
                {
                    SQLServer += "\\" + Instance;
                }
                SQLServers[System.Math.Max(System.Threading.Interlocked.Increment(ref f), f - 1)] = SQLServer;
            }
            Array.Sort(SQLServers);
            return SQLServers;
        }

它工作正常(如果找到了SQL Server),但不幸的是它找不到sql Express。

有人有主意嗎?

提前謝謝你

您需要為可瀏覽的SQL Server實例啟用SQL Browser服務。

SQL Express默認情況下未啟用此功能。

參考文獻:

枚舉SQL Server實例(ADO.NET)

SQL Server 2000內部提供了有關SqlDataSourceEnumerator的信息。 但是,SQL Server 2005通過使用名為SQL Browser的外部Windows服務來提供信息。 默認情況下啟用此服務,但是管理員可以關閉或禁用此服務,從而使服務器實例對該類不可見。 此服務僅適用於SQL Server 2005,對SQL Server 2000的行為沒有影響。

使用SQL Server瀏覽器

默認情況下,未為SQL Server Express啟用SQL Server瀏覽器服務。 可以先使用外圍應用配置器配置SQL Server Browser,然后使用SQL Server配置管理器進行管理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM