string.Format和单词"Password"

Mar*_*ier 1 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"));
Run Code Online (Sandbox Code Playgroud)

我得到一个无效的格式字符串异常.我把它缩小到格式字符串的"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!!!
Run Code Online (Sandbox Code Playgroud)

但是"密码"的真实故事是什么?我检查了MSDN和其他一些网站但是空了.哦,如果重要的话,这是一个WCF服务.

Ric*_*lay 15

你的问题是格式字符串中的{1}; 它应该是{1}(你用括号括起括号)

这导致您的FormatException,因为您的格式字符串现在无效.为什么你的第二次参赛作品超出我的范围.

编辑:我同意其他理查德你应该考虑使用连接字符串构建器对象.


Ric*_*ard 8

你考虑过这个DbConnectionStringBuilder班级(或其中一个子类型)吗?