Visual Studio 2012 ASP.NET MVC连接字符串Web.Config

时间:2013-07-08 14:20:04

标签: asp.net-mvc visual-studio-2012 web-config

我有一个查询数据库的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,但我仍然无法获得字符串。我如何获得字符串?

3 个答案:

答案 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>