从在App.config文件中定义的连接字符串中获取服务器名称?

21

我想从我的app.config文件中获取ConnectionString的serverName的IP地址,然后对其进行ping测试。实际上,我想在运行应用程序之前先ping一下我的服务器。如何实现这一点?我的ConnectionString:

<"name="ConnectionString"
 connectionString="Data Source=192.168.1.5;
                   Initial Catalog=CheckPass2;
                   User ID=User;
                   Password=myPassword" />

2
你尝试过什么?很多情况下,其他的SO用户希望看到你自己尝试过,因为SO并不是一个“给我代码”的网站。 - Erik Philips
1
你在 App.configservername 中放置了 IPAddress 吗? - Bhushan Firake
是的,我的连接字符串是这样的:name="ConnectionString" connectionString="Data Source=192.168.1.5;Initial Catalog=CheckPass2;User ID=User;Password=myPassword"。 - ozzy_mra
在问题中添加您的连接字符串... - Bhushan Firake
1个回答

57

我该如何做到这一点?

您可以使用SqlConnectionStringBuilder获取服务器地址。使用此类的DataSource属性,您可以按照以下方式进行操作:

// Retrieve the ConnectionString from App.config 
string connectString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
// Retrieve the DataSource property.    
string IPAddress = builder.DataSource;

这个DataSource属性对应于连接字符串中以下的键:

  • Data Source
  • server
  • address
  • addr和
  • network address

无论在提供的连接字符串中提供了哪个值,SqlConnectionStringBuilder创建的连接字符串都将使用众所周知的"Data Source"键。


3
仅为了清晰起见,这将获取数据源的名称。用户可以输入IP地址或计算机名称。 - gunr2171
另一件需要记住的事情是,“数据源”还将包括任何指定的端口号。格式为:“服务器,1234”。 - r41n
3
... 并且 如果 SQL Server 实例有命名实例,它还将包括实例名称... - DdW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接