2012-03-09 57 views
-8

當我嘗試的NullReferenceException試圖檢索連接字符串

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

我收到以下錯誤時:

Error message-null reference exception object reference not set to an instance of an object

到底哪裏出問題了?

+1

您連接字符串可能不是在web.config中定義或其他不同的名稱。 – Candide 2012-03-09 19:39:18

+1

看起來好像你的配置文件中沒有定義名爲'RegConnectionString'的連接字符串? – BrokenGlass 2012-03-09 19:39:27

+0

(假設這是你想知道的,因爲你的'問題'沒有實際的問題,只是一行代碼和一個異常消息,我認爲)ConfigurationManager似乎沒有找到你的連接字符串。 – MilkyWayJoe 2012-03-09 19:41:04

回答

3

檢查是否存在拼寫錯誤或丟失的配置設置。

在這行代碼中發生此錯誤的時間爲99.99999%,問題是Web.Config(或app.config)中的SqlConnecton設置缺失或拼寫錯誤。

(實際上,在我的經驗,它是100%的時間,但你永遠不知道有例外織補附近的一切。)

here

Connection string in .NET 3.5 (and above) config file

Do not use appsettings in web.config. Instead use the connectionStrings section in web.config.

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

use the ConfigurationSettings class. string connStr =

ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 

所以你的web.config應該包含

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

當然,你需要替換服務器名稱,數據庫名稱,用戶名,密碼等..

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> 
3

Web.config文件:

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

這是** blink **標籤非常有益的時間之一。 – 2012-03-09 19:43:07