简体   繁体   English

如何在C#中比较两个连接字符串

[英]How to compare two connectingstrings in C#

I have a default connectionstring and a Connectionstring in the webconfig, like this: 我在webconfig中有一个默认的连接字符串和一个连接字符串,如下所示:

<add name="BAG_Zipcodes" connectionString="Password=;Persist Security Info=True;
     User ID=sa;Initial Catalog=e;Data Source=" />

But if that connectionstring is not in webconfig. 但是,如果该连接字符串不在webconfig中。 use this one: 使用这个:

ConfigurationManager.ConnectionStrings[DbSchema.DefaultConnectionName];

So I compare it like this: 所以我这样比较:

var zipcodeConnection = ConfigurationManager.ConnectionStrings["BAG_Zipcodes"];
            //zipcodeConnection = ConfigurationManager.ConnectionStrings[DbSchema.DefaultConnectionName];

if (zipcodeConnection == ConfigurationManager.ConnectionStrings["BAG_Zipcodes"] && zipcodeConnection != null)
    zipcodeConnection = ConfigurationManager.ConnectionStrings["BAG_Zipcodes"];

else if (zipcodeConnection == ConfigurationManager.ConnectionStrings[DbSchema.DefaultConnectionName] && zipcodeConnection != null) 
    zipcodeConnection = ConfigurationManager.ConnectionStrings[DbSchema.DefaultConnectionName];

But If I delete this connectionstring from webconfig: add name="BAG_Zipcodes 但是,如果我从webconfig中删除此连接字符串:add name =“ BAG_Zipcodes

then the connectionstring is always null. 那么connectionstring始终为null。

Thank you 谢谢

This can be done by using a coalesce statement. 这可以通过使用合并语句来完成。

var zipcodeConnection = (ConfigurationManager.ConnectionStrings["BAG_Zipcodes"])
                      ?? ConfigurationManager.ConnectionStrings[DbSchema.DefaultConnectionName];

Oke, I solved like this: 好吧,我这样解决了:

var zipcodeConnection = ConfigurationManager.ConnectionStrings["BAG_Zipcodes"];


if (zipcodeConnection == ConfigurationManager.ConnectionStrings["BAG_Zipcodes"] && zipcodeConnection != null)
    zipcodeConnection = ConfigurationManager.ConnectionStrings["BAG_Zipcodes"];

else if (zipcodeConnection == null) 
    zipcodeConnection = ConfigurationManager.ConnectionStrings[DbSchema.DefaultConnectionName];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM