我有一个简单的WinForms应用程序,最终将成为一款游戏。现在,我正在处理它的数据访问层,并遇到了一些问题。我创建了一个名为“DataAccess”的独立项目,在其中创建了一个本地“.mdf”SQL Server数据库文件。我还创建了一个“app.config”文件来存储连接字符串。
以下是该配置文件:
以下是该配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="TBG_Master"
connectionString="Data Source=(localdb)\MSSQLLocalDb;Integrated Security=true;AttachDbFileName=|DataDirectory|\TBG_Master.mdf"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
我正在使用从这个问题中挑选出的代码来从 app.config 文件中检索连接字符串。
Assembly service = Assembly.GetExecutingAssembly();
ConnectionStringsSection css = ConfigurationManager.OpenExeConfiguration(service.Location).ConnectionStrings;
string cs = css.ConnectionStrings["TBG_Master"].ConnectionString;
return cs;
当它到达使用字符串作为键拉取连接字符串的行时,它会给我一个空引用异常。在检查了css.ConnectionString
集合之后,它唯一拥有的连接字符串看起来像这样:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
显然这不是我app.config
文件中的内容,我知道在我的DataAccess
项目中没有其他app.config
文件。同时,经过调试,我可以确定它正在查找正确的程序集。
为什么它给我这个连接字符串而不是正确的连接字符串呢?
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
。 - Kiquenet