2015-06-20 30 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(); 
}