大家好我想检查我打开的连接是否与配置文件中的连接字符串相同。
我正在尝试这样的事情:
if(con.ConnectionString == ConfigurationManager.ConnectionStrings["Con1"].ConnectionString);
第一部分是给我正确的价值,第二部分应该给我相同的字符串。
编辑: 这是我的整个连接字符串,因为我不想打扰你的细节:
if (DateTime.Now.Subtract(lastDBcheck).TotalSeconds > 10 && con.ConnectionString==ConfigurationManager.ConnectionStrings["Con1"].ConnectionString)
答案 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是默认值。
答案 2 :(得分:-1)
比较字符串时,最好使用String1.Equals(String2)。这将比较字符串的值。