尝试检索连接字符串时出现NullReferenceException

时间:2012-03-09 19:37:35

标签: c#

当我尝试

var con = new SqlConnection(
                  ConfigurationManager
                  .ConnectionStrings["RegConnectionString"]
                  .ConnectionString);

我收到以下错误:

  

错误消息 - 空引用异常   对象引用未设置为对象的实例

出了什么问题?

3 个答案:

答案 0 :(得分:3)

检查错误拼写或缺少配置设置。

在此行代码中发生此错误的时间为99.99999%,问题是Web.Config(或app.config)中的SqlConnecton设置丢失或拼写错误。

(实际上,根据我的经验,这是100%的时间,但你永远不会知道。在一切事物附近都有例外。)

来自here

  

.NET 3.5(及更高版本)配置文件中的连接字符串

     

请勿在web.config中使用appsettings。而是使用   web.config中的connectionStrings部分。

<connectionStrings>
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
  

使用ConfigurationSettings类。 string connStr =

ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;

所以你的web.config应该包含

<add name="RegConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />

当然,您需要替换服务器名称,数据库名称,用户名,密码等...

答案 1 :(得分:3)

的Web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!-- snip -->
    <connectionStrings>
        <add name="RegConnectionString"
             connectionString="Put your connex string here drrr" />
</connectionStrings>

答案 2 :(得分:2)

您可能缺少web.config中的RegConnectionString连接字符串。

这是一个例子。有关详细信息,请参阅MSDN

<configuration>
<!-- Other configuration settings -->
 <connectionStrings>    
  <add name="RegConnectionString" 
       providerName="System.Data.SqlClient" 
       connectionString="server=.;database=NorthWind;Integrated Security=SSPI" />    
 </connectionStrings>    
<!-- Other configuration settings -->
</configuration>