一个按钮列的问题
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Northwind
{
/// <summary>
/// DataGrid_Edit 的摘要说明。
/// </summary>
public class DataGrid_Edit : System.Web.UI.Page
{
DBAccess db = new DBAccess();
protected System.Web.UI.WebControls.DataGrid DG_Products;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
DG_DataBind();
}
private void DG_DataBind()
{
string strsql = "select * from Products where UnitsOnOrder>0";
db.BindDataGrid(strsql, DG_Products);
}
private void DG_Products_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DG_Products.EditItemIndex = e.Item.ItemIndex;
DG_DataBind();
}
private void DG_Products_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DG_Products.EditItemIndex = -1;
DG_DataBind();
}
private void DG_Products_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string ProductID = DG_Products.DataKeys[e.Item.ItemIndex].ToString();
string newProductName = ((TextBox)(e.Item.Cells[0].Controls[0])).Text;
string newUnitsOnOrder = ((TextBox)(e.Item.Cells[1].Controls[0])).Text;
string updatestr = "update Products set ProductName =" + newProductName + ",UnitsOnOrder =" + newUnitsOnOrder + "where ProductID = " + ProductID;
db.ExecuteSql(updatestr);
DG_Products.EditItemIndex = -1;
DG_DataBind();
}
}
}
代码如上,运行的时候可以,但是改了数值后就点更新就报错了:
索引超出范围。必须为非负值并小于集合大小。参数名: index
这个是什么意思啊,谢谢哪位达人讲讲