【发布时间】:2011-11-11 12:20:04
【问题描述】:
我正在尝试(学习)在 Winforms 中制作 UserControl。这里是我的 app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="LoginTestDB_cf"
connectionString="Data Source=.\SqlExpress;Initial Catalog=LoginTestDB;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
我创建了一个静态类并尝试获取连接字符串。我就是这样尝试的:
static class Helper
{
public static string ConnectionString
{
get
{
string str = System.Configuration.ConfigurationManager.ConnectionStrings["LoginTestDB_cf"].ConnectionString;
return str;
}
}
}
然后我尝试像这样访问连接字符串:
_myCommand = "my_command_text";
SqlConnection con = new SqlConnection();
con.ConnectionString = Helper.ConnectionString; //getting error
_cmd = new SqlCommand(_myCommand, con);
con.Open();
错误:“对象引用未设置为对象的实例。”
我在设置连接字符串时遇到错误。我可以知道这里有什么问题吗?我确信有一个小错误或无知在扮演肮脏的部分,但无法识别。
在助手类中,我什至尝试过
string str = System.Configuration.ConfigurationManager.AppSettings["LoginTestDB_cf"].ToString();
但还是没有运气。
谢谢。
【问题讨论】:
-
您是否尝试过在 Helper 类的 ConnectionString 属性中设置断点并检查配置管理器的 ConnectionStrings 属性?
-
您的代码似乎是对的,最初我以为您可能拼错了连接名称...
-
字符串 str = System.Configuration.ConfigurationManager.ConnectionStrings["LoginTestDB_cf"].ConnectionString; // 在这段代码中给出错误...
-
是不是因为我是在Usercontrol里面做的??
-
您有多少个项目,这些文件在哪里? app.config应该在生成exe的项目中,而不是在生成dll的类库中。
标签: c# sql winforms user-controls connection-string