我有一个查询数据库的Visual Studio 2012 ASP.NET MVC应用程序。我被告知最好将连接字符串保存在web.config文件中。名为ConnString
的连接字符串位于:
<connectionStrings>
<add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;"/>
</connectionStrings>
在C#中我想获取连接字符串,我使用:
String connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
应用程序在此行上死亡并抛出以下异常:
Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object.
我已经包括:
using System.Configuration;
位于页面顶部,但仍然失败。我尝试使用using System.WebConfiguration
,但我仍然无法获得字符串。我如何获得字符串?
答案 0 :(得分:3)
将您的web.config文件更改为包含providerName="System.Data.SqlClient"
作为连接字符串的属性,如下所示:
<connectionStrings>
<add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
答案 1 :(得分:1)
您错过了在连接字符串上添加providerName="System.Data.SqlClient"
。
将您的connectiong字符串更改为:
<connectionStrings>
<add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
此致
答案 2 :(得分:1)
我没有什么新的回答这个问题,但我想作一些解释,
System.Data.SqlClient
用于SQL Server的.NET Framework数据提供程序。在web.config中,您应该将System.Data.SqlClient作为providerName属性的值。它是您正在使用的.NET Framework数据提供程序。
如果您必须使用MYSql连接您的应用程序,那么您可以使用
MySql .Net Connector
它是必需的,但在你的情况下它不见了,这就是你收到错误信息的原因。
你可以阅读更多关于(这里)[http://msdn.microsoft.com/en-US/library/htw9h4z3(v = VS.80).aspx]希望它能让你更好地理解你的错误制作,你解决它。
<configuration>
<connectionStrings>
<add name="Northwind"
connectionString="Data Source=Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>