使用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,因为您的格式字符串现在无效.为什么你的第二次参赛作品超出我的范围.
编辑:我同意其他理查德你应该考虑使用连接字符串构建器对象.
你考虑过这个DbConnectionStringBuilder
班级(或其中一个子类型)吗?