连接字符串中的非字母数字(ex分号)

时间:2014-06-05 06:30:24

标签: c# vb.net connection-string non-alphanumeric

我已经在网上搜索了一个解决我问题的简单方法,但我觉得很奇怪,如果密码包含非字母数字字符,那么没有人能够找到正确的连接字符串" 34。

我的问题:
我的用户密码中包含一个或多个这些字符:

` ~ ! @ # $ % ^ & * ( ) _ + - = { } | \ : " ; ' < > ? , . /

因为连接字符串格式是&#34; KEY = VALUE; KEY2 = VALUE2&#34;如果密码当然包含分号,则证明是一个问题。

所以我做了一些研究,发现了这些&#34; connectionstring-rules&#34;

  • 所有空白字符,除了放在某个值或引号内的字符外,都会被忽略

  • 空白字符虽然会影响连接池机制,但池化连接必须具有完全相同的连接字符串

  • 如果分号(;)是值的一部分,则必须用引号分隔(&#34;)

  • 如果值以双引号(&#34;)开头,则使用单引号(&#39;)

  • 相反,如果值以单引号(&#39;)开头,请使用双引号(&#34;)

  • 不支持转义序列

  • 值类型不相关

  • 名称是案例iNsEnSiTiVe

  • 如果KEYWORD = VALUE对在连接字符串中出现多次,则使用与最后一次出现相关联的值

  • 但是,如果提供程序关键字在字符串中多次出现,则使用第一次出现。

  • 如果某个关键字包含等号(=),则必须在其前面加一个等号以表明它是关键字的一部分。

  • 如果某个值有前导或尾随空格,则必须用单引号或双引号括起来,即Keyword =&#34;值&#34;,否则删除空格。

然后我读了一堆线程,其中人们试图将上述内容实现到他们的&#34;格式连接字符串方法&#34;中,但似乎更多场景在他们开始时曝光。

我的问题是:

是否有人制作了&#34; FormatConnectionstring&#34;在连接字符串中使用的方法 - 或者我在这里做了一些完全错误的事情,我的问题确实存在于其他地方?

1 个答案:

答案 0 :(得分:1)

使用SqlConnectionStringBuilder;之一:

  • 设置属性,阅读ConnectionString(创建)
  • 设置ConnectionString,读取属性(解析)