今天,程序突然出現下面的錯誤:
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.IndexOutOfRangeException: 在位置 0 處沒有任何行。
源錯誤:
“/auto.dg.gd.cn”應用程序中的服務器錯誤。
在位置 0 處沒有任何行。
行 32: private void Data_Binding()
行 33: ...{
行 34: DataRow dr = obJSynopsis.GetSynopsisByMember(_memberKey).Rows[0];
行 35: this.lblCompanyName.Text = dr["CompanyName"].ToString();
行 36: this.lblAddress.Text = dr["Address"].ToString();
源文件: d:\auto.dg.gd.cn\CheHang\CheHangPageFooter.ascx.cs 行: 34
堆棧跟蹤:
[IndexOutOfRangeException: 在位置 0 處沒有任何行。]
System.Data.RBTree`1.GetNodeByIndex(Int32 userIndex) +148
System.Data.RBTree`1.get_Item(Int32 index) +18
System.Data.DataRowCollection.get_Item(Int32 index) +12
CheHang_CheHangPageFooter.Data_Binding() in d:auto.dg.gd.cnCheHangCheHangPageFooter.ascx.cs:34
CheHang_CheHangPageFooter.Page_Load(Object sender, EventArgs e) in d:auto.dg.gd.cnCheHangCheHangPageFooter.ascx.cs:29
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
System.Web.Util.CallIEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +80
System.Web.UI.Control.LoadRecursive() +49
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3750
版本信息: Microsoft .NET Framework 版本:2.0.50727.1378; ASP.Net 版本:2.0.50727.1378
檢查經發現,原來“_memberKey”沒有取得到值時,就去做數據綁定。
解決的辦法,加上一個判斷。
if (obJSynopsis.GetSynopsisByMember(_memberKey).Rows.Count > 0)
...{
DataRow dr = obJSynopsis.GetSynopsisByMember(_memberKey).Rows[0];
//other code
}