我有一个简单的 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 文件中检索连接字符串,我使用从以下位置提取的代码this https://stackoverflow.com/questions/8612560/fetching-connection-string-from-appconfig-file-in-c-sharp问题。
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
文件,我知道没有其他app.config
文件在我的DataAccess
项目。另外,经过调试后,我知道它正在寻找正确的程序集。
为什么它给我这个连接字符串而不是正确的?
正如@Amy 指出的,这不起作用的原因是连接字符串未存储在执行程序集的 app.config 文件中。移动后,它现在可以正常工作了。感谢您的快速帮助:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)