2015-06-20 67 views
2

我正在創建一個Windows應用程序,我需要在其中自動創建連接字符串。我創建了一個類似於SQL Server Management Studio連接到服務器窗體的Windows窗體。爲此,我需要幾件東西我們如何通過c#獲取本地SQL Server實例

  1. 本地SQL服務器系統的名稱。

  2. 用戶填寫表單後,如選擇服務器名稱和身份驗證類型,然後我需要檢查填寫的細節是否正確。

  3. 我需要在c#中創建自動連接字符串,並創建自動數據庫,併爲此我執行SQL查詢在工作正常的C#代碼。

因此,請幫助我獲取實例名稱並檢查數據在C#窗口應用程序中是否有效。

回答

1

使用ManagedComputer

using Microsoft.SqlServer.Management.Smo.Wmi; 

ManagedComputer mc = new ManagedComputer(); 

foreach (ServerInstance si in mc.ServerInstances) 
{ 
    Console.WriteLine("The installed instance name is " + si.Name); 
} 
+0

我用這個命名空間的權利,但有一個錯誤在「管理」,突出。該錯誤顯示「此類型或名稱空間在Microsoft.SqlServer下不存在」。請確認 !我的SQL服務器版本是2008年。 –

2

爲了獲取本地網絡(和本地)的所有實例可以使用此代碼:(從MSDN

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

,並測試連接字符串就可以簡單地用生成的連接字符串打開一個連接。是這樣的:(從this答案)

string provider = "System.Data.SqlClient"; // for example 
DbProviderFactory factory = DbProviderFactories.GetFactory(provider); 
using(DbConnection conn = factory.CreateConnection()) { 
    conn.ConnectionString = cs; 
    conn.Open(); 
}