1

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

我正在尝试这样的事情:

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

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

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

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

3 回答 3

2

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

如果您的代码不起作用,则很可能是由于以下任一原因:

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

为了避免后一种情况,我建议您在取消引用之前检查您的对象是否不为空。

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

if (con != null && con1 != null && con.ConnectionString == con1.ConnectionString) {
    // Connection strings are the same.
}
于 2012-06-11T18:42:30.420 回答
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

于 2012-06-11T19:34:41.037 回答
-1

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

于 2012-06-11T18:42:26.313 回答