【问题标题】:Using sign (") and sign (') in database connection string在数据库连接字符串中使用符号 (") 和符号 (')
【发布时间】:2012-12-10 22:01:36
【问题描述】:

我的数据库(Sql 精简版)密码是Y6K<dkq2J)[hf/',@K"!IiQA。 当我在我的应用配置中创建它的实体数据模型连接字符串将是:

已编辑

<add name="OtherEntities" ... Password=&quot;&quot;Y6K&lt;dkq2J)[hf/',@K&quot;&quot;&quot;&quot;!IiQA&quot;&quot;  ... />

密码中有引号"',一切正常。所以我想使用Ado.Net SqCelconnection

            string pass = "???";
            string conString =
                "Data Source=path\Other.sdf;password='" + pass + "';";
            using (SqlCeConnection connection = new SqlCeConnection(conString))
            {
.

如何替换"' 登录密码?

我已经尝试过\",\"\",&amp;quot;" 符号。

''&amp;apos;' 签名。但不起作用。

【问题讨论】:

  • 检查更新 3 到以下答案:stackoverflow.com/a/3177871/55209
  • 你必须选择。第一个使用不同的密码,第二个使用转义字符。
  • @Ramhound:我不会改变通行证

标签: c# connection-string double-quotes quote


【解决方案1】:

由于字符串中存在转义和引号字符,您可能必须自己创建字符串。

这似乎有效:

StringBuilder sb = new StringBuilder();
sb.Append(@"Y6K<dkq2J)[hf/',@K");
sb.Append((char)34);
sb.Append("!IiQA");

string conString = @"Data Source=path\Other.sdf;password=" + sb.ToString();

【讨论】:

  • 谢谢,但sb.Append(@"Y6K&lt;dkq2J)[hf/'',@K"); 必须是sb.Append(@"Y6K&lt;dkq2J)[hf/',@K");(删除一首歌曲)。
  • @irsog 为了正确起见进行了更新。即使在查看时也可以破解的硬密码。 :-)
【解决方案2】:

【讨论】:

  • 我已经看过了,我已经用app.conf用了没问题,但是为什么不能用ado.net呢?
  • @irsog:在这种情况下尝试var pass = "Y6K&lt;dkq2J)[hf/',@K\"!IiQA";
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
相关资源
最近更新 更多