如何比较打开连接字符串与配置文件中的连接字符串

时间:2012-06-11 18:40:07

标签: c# connection-string

大家好我想检查我打开的连接是否与配置文件中的连接字符串相同。

我正在尝试这样的事情:

if(con.ConnectionString == ConfigurationManager.ConnectionStrings["Con1"].ConnectionString);

第一部分是给我正确的价值,第二部分应该给我相同的字符串。

编辑: 这是我的整个连接字符串,因为我不想打扰你的细节:

if (DateTime.Now.Subtract(lastDBcheck).TotalSeconds > 10 && con.ConnectionString==ConfigurationManager.ConnectionStrings["Con1"].ConnectionString)

3 个答案:

答案 0 :(得分:2)

使用==来比较字符串的值在C#中是正确的。

如果您的代码无效,则很可能是由于:

  • 这些值实际上并不相同(可能有一个额外的空格或小的变化)。
  • 你得到例外。

为避免后一种情况,我建议您在解除引用之前检查对象是否为空。

var con1 = ConfigurationManager.ConnectionStrings["Con1"];

if (con != null && con1 != null && con.ConnectionString == con1.ConnectionString) {
    // Connection strings are the same.
}

答案 1 :(得分:2)

我认为这可以解释你的问题:

The .NET Framework Data Provider for SQL Server does not persist or return 
the password in a connection string unless you set Persist Security Info to true.

False是默认值。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.100).aspx

答案 2 :(得分:-1)

比较字符串时,最好使用String1.Equals(String2)。这将比较字符串的值。