2013-07-08 46 views
6

我有一个查询数据库的Visual Studio 2012 ASP.NET MVC应用程序。我被告知将连接字符串保存在web.config文件中是一种很好的做法。所谓ConnString连接字符串位于:Visual Studio 2012 ASP.NET MVC连接字符串Web.Config

<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,但我仍然无法获取字符串。我如何得到字符串?

+1

在您的web.config文件中,是一个节点下的节点吗? –

+0

只需尝试ConfigurationManager.ConnectionStrings [“ConnString”]。ToString() – ckv

+0

@RyanWeir - 是的,它是节点的直接子节点。 – Jonathan

回答

2

更改您的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> 
+0

谢谢,这个问题实际上是我使用错误的web.config文件! – Jonathan

1

你错过了您的连接字符串添加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> 

问候

+0

这不应该影响ConfigurationManager,因为它会忽略提供者。这只能在ADO.net中使用 –

1

我没有新的来回答这个问题,但我想给一些解释,

System.Data.SqlClient 

其.NET框架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>