如何解决“ConnectionString属性尚未初始化”

当我开始我的应用程序时,我得到: ConnectionString属性尚未初始化。

Web.config文件:

<connectionStrings> <add name="MyDB" connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" /> </connectionStrings> 

堆栈是:

 System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643 System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117 System.Data.SqlClient.SqlConnection.Open() +122 

我相当新的.NET,我不明白这一点。 我在Google上find了很多答案,但是没有一个确实解决了我的问题。

这意味着什么? 我的web.config不好? 我的function不好吗? 我的SQLconfiguration不能正常工作(我正在使用sqlexpress)?

我在这里的主要问题是,我不知道从哪里开始debugging…什么都可以帮助。

编辑:

代码错误:

 MySQLHelper.ExecuteNonQuery( ConfigurationManager.AppSettings["ConnectionString"], CommandType.Text, sqlQuery, sqlParams); 

sqlQuery是一个像“select * from table”的查询。 sqlParams在这里是不相关的。

这里的另一个问题是我的公司使用MySQLHelper,我没有可见性(只有一个帮助器的DLL DLL)。 它在其他项目中一直很好,所以我99%的错误不是来自这里。

我想如果没有看到代码的话,我们不得不等待与创build这个帮手的人联系,以便获得代码,否则如果没有办法debugging它。

引用连接string应该这样做:

 MySQLHelper.ExecuteNonQuery( ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString, CommandType.Text, sqlQuery, sqlParams); 

ConfigurationManager.AppSettings["ConnectionString"]将在AppSettings查找名为ConnectionString东西,它不会find它。 这就是为什么你的错误消息指出"ConnectionString" property has not been initialized ,因为它正在寻找名为ConnectionStringAppSettings的初始化属性。

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString指示查找名为“MyDB”的连接string。

这里有人在谈论使用web.config连接string

当数据源尝试绑定到数据但是不能find连接string时,会出现此错误。 根据我的经验,这通常不是由于web.config中的错误(虽然我不是100%确定这一点)。

如果以编程方式分配数据源(如SqlDataSource)或创build查询(即使用SqlConnection / SqlCommand组合),请确保为其分配了一个ConnectionString。

 SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString; 

如果您将数据绑定元素连接到数据源(例如,将GridView或ComboBox连接到SqlDataSource),请确保将数据源分配给其中一个连接string。

发布你的代码(对于数据绑定元素和web.config是安全的),我们可以看看它。

编辑:我认为问题是,您正在尝试从AppSettings区域获取连接string,并以编程方式,它不是它存在的地方。 尝试用ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionStringreplace它ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString (如果ConnectionString是连接string的名称)。

连接string不在 AppSettings中

你在找什么在:

 System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]... 

使用[]代替(),如下例所示。

 SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString); DataTable data = new DataTable(); DataSet ds = new DataSet();