如何修复"ConnectionString属性尚未初始化"

mar*_*cgg 34 c# asp.net connection-string database-connection

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

Web.config文件:

<connectionStrings>
    <add name="MyDB"
         connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

堆栈是:

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
Run Code Online (Sandbox Code Playgroud)

我是.NET的新手,我不懂这个.我在Google上找到了很多答案,但没有一个能解决我的问题.

那是什么意思?我的web.config坏了吗?我的功能不好吗?我的SQL配置无法正常工作(我正在使用sqlexpress)?

我的主要问题是我不知道从哪里开始调试这个......任何事情都会有所帮助.

编辑:

Failling代码:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);
Run Code Online (Sandbox Code Playgroud)

sqlQuery是一个类似"select*from table"的查询.sqlParams在这里不相关.

另一个问题是我的公司使用MySQLHelper,我对它没有可见性(只有一个帮助器lib的dll).它在其他项目中运行良好,所以我99%认为错误不是来自这里.

我想如果在没有看到代码的情况下无法对其进行调整,我将不得不等待与创建此帮助程序的人联系以获取代码.

ksc*_*ott 28

引用连接字符串应该这样做:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);
Run Code Online (Sandbox Code Playgroud)

ConfigurationManager.AppSettings["ConnectionString"]会寻找AppSettings一些ConnectionString它找不到的名字.这就是您的错误消息指示的"ConnectionString" property has not been initialized原因,因为它正在查找AppSettingsnamed 的初始化属性ConnectionString.

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString 指示查找名为"MyDB"的连接字符串.

这里有人在谈论使用web.config连接字符串


Mat*_*nes 16

当数据源尝试绑定到数据但由于无法找到连接字符串而无法获得此错误.根据我的经验,这通常不是由于web.config中的错误(虽然我不是100%肯定这一点).

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

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;
Run Code Online (Sandbox Code Playgroud)

如果要将数据绑定元素连接到数据源(即GridView或ComboBox连接到SqlDataSource),请确保将数据源分配给其中一个连接字符串.

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

编辑: 我认为问题是你试图从AppSettings区域获取连接字符串,并以编程方式获取它不存在的位置.尝试将其替换为ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString(如果ConnectionString是连接字符串的名称.)