使用 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/