因此,我接管了這個項目,一個頁面拋出了很多錯誤。我需要重構整個事情,但總是時間是一個問題。檢查datareader是否爲空或沒有行? ASP.NET
在一種情況下,代碼檢查是否有數據讀取器有任何行,如果不是,則轉到錯誤頁面。然而,由於代碼是現在的DataReader可以爲空(沒有成功連接到數據庫),並在這些情況下,我不能使用
if (!dr.HasRows)
//
具有因這顯然給了我「的NullReferenceException是由代碼未處理的」。我試過!博士,但同樣的事情。
代碼的一部分是像
SqlDataReader dr = null;
try
{
//connect to db etc
dr = DbHelper.GetReader("sp_GetCustomer", param);
}
catch
{
//show an error message
}
// and then:
if (!dr.HasRows)
{
}
有什麼建議?
在此先感謝。
如何把dr.hasrows的嘗試,以及和處理的錯誤呢? – 2011-04-05 13:10:17
@Elad:不! *避免*明顯的例外,不要抓住它們。 – 2011-04-05 13:14:08
@Dan Puzey - 當然,但事情發生了。你永遠不會知道,如果發生了具體的事情,我寧願去捕捉它,也不願意......給出某種類型的智能錯誤。 – 2011-04-05 13:16:36