2014-01-07 48 views
-1

我正在開發Asp.net和C#中的學校管理系統。 我創建了一個登錄頁面,當我點擊登錄時發生錯誤oclashred 對象引用未設置爲對象的實例。未將對象引用設置爲ASP.NET中對象的實例

描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error:

public string connectionString() 
{ 
    string connString = ConfigurationManager.ConnectionStrings["SchoolConnectionString1"].ConnectionString; 
    return connString; 
} 

Source File: C:\Users\ALI\Desktop\Final Project\SchoolERP\SchoolERP\Connection\MyConnection.cs Line: 14

我的堆棧跟蹤下

堆棧跟蹤給定:

[NullReferenceException: Object reference not set to an instance of an object.] SchoolERP.Connection.MyConnection.connectionString() in C:\Users\ALI\Desktop\Final SchoolERP.Connection.MyConnection.connectionString() in C:\Users\ALI\Desktop\Final Project\SchoolERP\SchoolERP\Connection\MyConnection.cs:14 SchoolERP.Pages.Membership.Logout.btnLogout_Click(Object sender, EventArgs e) in C:\Users\ALI\Desktop\Final Project\SchoolERP\SchoolERP\Pages\Membership\Logout.aspx.cs:26 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

+1

是'ConfigurationManager.ConnectionStrings [「SchoolConnectionString1」]'null'?使用調試器來檢查。如果是這樣,請確保您在'web.config'文件中提供它。在這裏你看到:http://www.connectionstrings.com/store-connection-string-in-webconfig/ –

+0

對象引用錯誤非常簡單。您試圖訪問某個值爲空的變量的屬性。很明顯,它沒有找到你的連接字符串,所以它的值爲null,所以它不能調用'.ConnectionString'屬性。 – paqogomez

+0

你的配置文件似乎缺少連接字符串 –

回答

2

請檢查您是否確實有在你的配置文件中的 「SchoolConnectionString1」 連接字符串。

在配置文件(Web.config如果您正在使用的Web項目),下您應該看到這樣的事情:

<add name="SchoolConnectionString1" connectionString="Data Source=someServer;Initial Catalog=MyDB[...]" providerName="System.Data.SqlClient" /> 

如果不是這種情況下,連接字符串顯示正確,檢查你的web.config整體是否格式良好。

3

問題:您的web.config文件中可能缺少ConnectionString SchoolConnectionString1

解決方案:您需要在您的web.config文件中添加ConnectionString如下:

<connectionStrings> 
    <add 
    name="SchoolConnectionString1" 
    connectionString="Data Source=serverName;Initial 
    Catalog=DatabaseName;Persist Security Info=True;User 
    ID=userName;Password=password" 
    providerName="System.Data.SqlClient" 
    /> 
</connectionStrings> 
1

不要在web.config中使用的AppSettings。而是使用web.config中的connectionStrings部分。

 <connectionStrings> 
    <add name="SchoolConnectionString1" 
    connectionString="Data Source=DatabaseServerName;Integrated Security=true;Initial Catalog=MySampleDB" providerName="System.Data.SqlClient"/> 
    </connectionStrings > 

在使用後面的代碼添加命名空間

using System.Configuration; 
1

大多數propably這是錯誤的Web配置或無效的結構(的情況下,如果連接字符串在這裏,這裏是

沒有拼寫錯誤
SchoolConnectionString1 

正如其他答案中所述

在我們的項目中不止一個Web配置文件(一個用於調試,另一個用於發佈),所以這個東西經常發生。

所以檢查你的情況是否有兩個(也許你的項目有不同的構建Web.Degug.Config和Web.Release.Config)。這是VS 2012中的一個選項(也許是早期版本),可以替換一些針對不同環境的配置。

相關問題