我有两个项目。一个是网络和另一种是Windows窗体。 Web项目连接到数据库,但是Windows项目抛出一个异常NullReferenceException,读取连接字符串。
我使用相同的类来连接两个项目。使用LINQTOSQL建立连接。
这是我的连接字符串:
<connectionStrings>
<add name="GPSystemConnectionString"
connectionString="Data Source=.;Initial Catalog=GPSystem;User ID=***;Password=***"
providerName="System.Data.SqlClient" />
</connectionStrings>
这就是我读它的方式。
string CS = ConfigurationManager.ConnectionStrings["GPSystemConnectionString"].ConnectionString;
(此行发生异常).....(对象引用未设置为对象的实例。)
注意:我使用相同的类连接两个项目....一个连接但另一个连接失败。
请任何人帮助我!
提前谢谢。
答案 0 :(得分:6)
您需要在app.config中输入窗口应用程序中的连接字符串。
如果您没有App.Config
文件,请添加它。
并输入如下所示的条目
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="GPSystemConnectionString" connectionString="..." />
</connectionStrings>
</configuration>
在.cs文件中
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
var connectionString=ConfigurationManager.ConnectionStrings["GPSystemConnectionString"].ConnectionString;
答案 1 :(得分:2)
如果你想get the configuration section from another assembly使用它:
Assembly assembly = ...; /* get the assembly to read config from */
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(assembly.Location);
string CS = configuration.ConnectionStrings["GPSystemConnectionString"].ConnectionString;
答案 2 :(得分:0)
在我的情况下,这个问题是由我的64位Machine.Config中的ConnectionString引起的。
C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\Config
而不是标准的32位
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config
答案 3 :(得分:0)
当我在与可执行文件不同的项目/库中拥有数据访问层时,我总是很难解决这个带有var configfile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var path = configfile.FilePath;
的空引用问题。我经常使用以下内容来帮助在运行时调试配置文件的位置:
Column B