我在学习 Beginning ASP.NET 1.0 With C# 一书中第十三章有一个例子,我下载了原书网站上提供的代码,编译出错,原因如下.源错误:
行 41: // Find the row to change
行 42: DataRow[] objRows = objTable.Select("FirstName='Margaret' AND LastName='Peacock'");
行 43: objRows[0]["FirstName"] = "John";
行 44: objRows[0]["LastName"] = "Hartford";
行 45:
源文件: c:\inetpub\wwwroot\editingdata.aspx 行: 43 堆栈跟踪:
[IndexOutOfRangeException: 索引超出了数组界限。]
ASP.editingdata_aspx.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\editingdata.aspx:43
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
源代码为:
// -----------------------------------------------------------------
// Marker 2 // Find the row to change
DataRow[] objRows = objTable.Select("FirstName='Margaret' AND LastName='Peacock'");
objRows[0]["FirstName"] = "John";
objRows[0]["LastName"] = "Hartford"; // Bind the data grid to the new data
dgNameList3.DataSource = objTable.DefaultView;
dgNameList3.DataBind();这里为什么会出现越界访问呢?是不是DataRow[]中没有获取到任何数据,可是我查看了数据库中,有这两个值.
行 41: // Find the row to change
行 42: DataRow[] objRows = objTable.Select("FirstName='Margaret' AND LastName='Peacock'");
行 43: objRows[0]["FirstName"] = "John";
行 44: objRows[0]["LastName"] = "Hartford";
行 45:
源文件: c:\inetpub\wwwroot\editingdata.aspx 行: 43 堆栈跟踪:
[IndexOutOfRangeException: 索引超出了数组界限。]
ASP.editingdata_aspx.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\editingdata.aspx:43
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
源代码为:
// -----------------------------------------------------------------
// Marker 2 // Find the row to change
DataRow[] objRows = objTable.Select("FirstName='Margaret' AND LastName='Peacock'");
objRows[0]["FirstName"] = "John";
objRows[0]["LastName"] = "Hartford"; // Bind the data grid to the new data
dgNameList3.DataSource = objTable.DefaultView;
dgNameList3.DataBind();这里为什么会出现越界访问呢?是不是DataRow[]中没有获取到任何数据,可是我查看了数据库中,有这两个值.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货