如何解决“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
,因为它正在寻找名为ConnectionString
的AppSettings
的初始化属性。
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"].ConnectionString
replace它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();