在app.config中添加连接字符串
我在C#中有一个类库,它有几个类和一个app.config。 我已将ConnectionString放在app.config中,如下所示:
我尝试在项目的其中一个类中打开连接字符串,如下所示:
string connectionString = ConfigurationManager.ConnectionStrings["TRN_DB"].ConnectionString.ToString(); SqlConnection con = new SqlConnection(connectionString); con.Open();
但它给了我一个错误:
{“你调用的对象是空的。”}
当我在web.config中的web项目中使用相同的方式时,连接字符串是正确的,有人知道如何在app.config中访问它吗? 我也是这样用的:
string connectionString = System.Configuration.ConfigurationSettings.AppSettings["TRN_DB"];
这个给我这个错误:
此方法已过时,已被System.Configuration取代!System.Configuration.ConfigurationManager.Appsettings
为了说清楚,我的解决方案中没有任何其他项目,因为我希望我的类库能够独立工作。 我无法将web项目和web.config应用于此。 所以我应该将连接字符串添加到app.config并访问它或者将web.config添加到我的类库项目中。 我不确定哪一个是可行的。
如果使用类库运行Web项目,请在Web项目中将连接字符串添加到web.config
如果您正在运行带有类库的Console / WinForm项目,请在Console / WinForm项目中将连接字符串添加到app.config
修改库项目中的配置将不适用于您的情况。
据我所知,你有一个类库,其中包含一个带有连接字符串的配置文件,并在另一个应用程序中引用该库。 问题是app.config(或web.config)是相对于正在执行的应用程序。
假设您的类库名为Shared.dll,并且具有Shared.dll.config和另一个名为Application with Application.exe.config的应用程序(假设它是一个控制台应用程序)。 运行该应用程序时,使用的app.config将是Application.exe.config。
如果您尝试在此应用程序中尝试访问名为TRN_DB
的连接字符串,它将在应用程序的配置文件中查找TRN_DB
的连接字符串并返回null(因此引用exception)。
在Windows窗体中,应用程序总是在引用中添加对System.Configuration的引用,然后在代码页中using System.Configuration
添加,然后使用如下连接字符串:
string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
我遇到了类似的问题,问题是我需要将System.Configuration添加到References。
我想用System.Configuration添加; 该类可以做到这一点,但我必须在引用之前将System.Configuration添加到引用。
连接字符串的东西需要在主exe项目的app.config中,否则你需要手动加载它。
正如其他人所说,库将使用配置文件来执行应用程序。
我想补充一点建议。 一个选项需要考虑,因为(在我看来)有点夸张和专业的触摸是创建一个自定义配置部分。 这样您就可以对库的设置进行分组,而不会对您的库使用哪些设置产生任何疑问: http : //msdn.microsoft.com/en-us/library/2tw134k3(v = vs.100)。 ASPX