我目前正在使用c#編寫一個使用ASP.NET編寫的Web應用程序。NullReferenceException隨機發生
我有一個OleDBDatareader
讀取存儲在.mdb
文件中的網頁內容,同時,另一個讀取器正在尋找動態菜單內容(相同的.mdb
文件)。
當瀏覽頁面時,我隨機得到一個NullReferenceEexception
,指出閱讀器爲空。這似乎發生在隨機頁面上,以及使用閱讀器的方法之一(並不總是相同的)。
這是菜單代碼:http://pastebin.com/TCtj3vxj
而這裏的頁面代碼:http://pastebin.com/gYDHkTKv
在此先感謝。
編輯1:有一種真人版除外@ win.abbraccio-onlus.it的
編輯2:這裏是db.EseguiReader代碼:
public OleDbDataReader EseguiReader(string _query)
{
OleDbConnection conn = this.getConnessione();
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = _query;
cmd.Connection = conn;
return cmd.ExecuteReader();
}
編輯3:和棧跟蹤:
NullReferenceException: Object reference not set to an instance of an object.]
WebApplication3.classi.MenuuService.caricaFigli(String categoria) +322
WebApplication3.Site1.Page_Load(Object sender, EventArgs e) +192
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Control.LoadRecursive() +145
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
MS-訪問和同意後,關閉您的閱讀器/連接不好frien。 –
只有一個建議:使用積極的緩存並儘可能避免擊中數據庫。一般情況下是這樣,但MS Access的情況更是如此......順便說一句,如果您使用Access,您的數據庫的大小應該小於2GB(如果我沒有誤解Access的大小限制),那麼它可能適合完全在您的網絡服務器的內存中 –
您似乎正在使用其他一些類來打開DBReader(稱爲數據庫)。該類可能會發生異常,導致它返回空值。你有這個課程的來源嗎? –