c# - string.Format 和单词 "Password"

标签 c# string

使用 C#,我需要从几个 AppSettings 构建一个连接字符串。如果我这样做:

Connection = string.Format("Data Source={0};Initial Catalog={1);User Id={2};Password={3};",
  ConfigurationManager.AppSettings.Get("CartServer"),
  ConfigurationManager.AppSettings.Get("CartDatabase"),
  ConfigurationManager.AppSettings.Get("CartUserName"),
  ConfigurationManager.AppSettings.Get("CartPassword"));

我得到一个无效的格式字符串异常。我将其缩小到格式字符串的“Password=”部分(即“Passwork=”有效)。有一个足够简单的解决方法:

Connection = string.Format("Data Source={0};Initial Catalog={1);User Id={2};{3}={4};",
  ConfigurationManager.AppSettings.Get("CartServer"),
  ConfigurationManager.AppSettings.Get("CartDatabase"),
  ConfigurationManager.AppSettings.Get("CartUserName"),
  "Password",ConfigurationManager.AppSettings.Get("CartPassword")); // Lame!!!

但是“密码”的真实故事是什么?我检查了 MSDN 和其他几个站点,但结果是空的。哦,如果重要的话,这是一个 WCF 服务。

最佳答案

您的问题是格式字符串中的{1);它应该是 {1}(你用括号关闭了大括号)

这会导致您的 FormatException,因为您的格式字符串现在无效。但是,为什么您的第二个条目有效超出了我的范围。

编辑:我同意其他 Richard 的观点,您应该考虑使用连接字符串构建器对象。

关于c# - string.Format 和单词 "Password",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/611068/

相关文章:

c# - PrincipalContext.ValidateCredentials 总是返回 FALSE

c# - 在公式中查找分隔点的正则表达式

c - 使用 toupper 将字符数组传递给函数

c# - 为什么 Equals 没有按预期工作

c# - EmguCV MatchTemplate 获取所有匹配项

ios - 从字符串末尾删除空格字符 - UILabel Swift

python - 将相同的字符串格式应用于不同数量的变量

c++ - 无故循环退出

java - 在java中将字符串从一种编码解释为另一种编码

c# - [Azure 数据目录] : Read the data from Azure data catalog glossary Unauthorized error?