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

Asp.net mvc Visual Studio 2012 ASP.NET MVC连接字符串Web.Config,asp.net-mvc,visual-studio-2012,web-config,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=US

我有一个查询数据库的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>
应用程序在此行中死亡,并引发以下异常:

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;

在页面顶部,但仍然失败。我尝试使用System.WebConfiguration使用
,但仍然无法获取字符串。如何获取字符串?

更改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>

您没有在连接字符串上添加
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>


关于

我没有什么新的问题要回答,但我想解释一下

 System.Data.SqlClient 
它的.NET Framework SQL Server数据提供程序。在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>


在您的web.config文件中,该节点是否在该节点下?请尝试ConfigurationManager.ConnectionString[“ConnString”].ToString()@RyanWeir-是的,它是该节点的直接子节点。@ckv-当我尝试该操作时,会得到“对象引用未设置为对象的实例”。您将其添加到哪个web.config?项目根目录中的那个?还是视图目录中的那个?谢谢,问题实际上是我使用了错误的web.config文件!这不应影响ConfigurationManager,因为它会忽略提供程序。这仅由ADO.net使用
 <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>