当前位置:编程学习 > C#/ASP.NET >>

GridView1报错

 int id =Convert.ToInt32( this.GridView1.DataKeys[e.RowIndex].Values.ToString());
当我点击删除的时候我像上面这样的到GridView1的ID值
为什么报
[ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
的错啊!!!请大家帮我解决一下.... --------------------编程问答--------------------
引用楼主 huangshuli 的帖子:
int id =Convert.ToInt32( this.GridView1.DataKeys[e.RowIndex].Values.ToString()); 
当我点击删除的时候我像上面这样的到GridView1的ID值 

需要遍历下得到的ID值 --------------------编程问答-------------------- 指定GridView1的DataKeyNames为表的主键ID --------------------编程问答-------------------- 哪要这么做呢? --------------------编程问答-------------------- 我已经指定了DataKeyNames为表的主键ID了
也会报这个错 --------------------编程问答-------------------- 没有判断吧比如if(e.RowType==DataRowType.DataRow){...} 
因为页脚和页眉是没有的 --------------------编程问答-------------------- int id =Convert.ToInt32( this.GridView1.DataKeys[e.RowIndex].Values.ToString()); 
不是].Values
是.Value  没有S --------------------编程问答-------------------- 哦,看错了啊,你删除事件写在

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "del")//模板列里设置删除按键的CommandName="del" 
{
  int id = int.Parse(e.CommandArgument.ToString());
}
}
--------------------编程问答-------------------- int id =Convert.ToInt32( this.GridView1.DataKeys[e.RowIndex].Values.ToString()); 

如果不是取出来的数据有错,就是没有取对DataKeys[e.RowIndex]的DataKeys[这里没取对] --------------------编程问答-------------------- protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        bc.ExecSQL("delete  from tbNews where id='" + this.GridView1.DataKeys[e.RowIndex].Value.ToString() + "'");
        GridView1.DataSource = bc.GetDataSet("select * from tbNews where " + strStyle, "tbNews");
        GridView1.DataBind();
    } --------------------编程问答--------------------
谢谢哈,
现在可是可以的到ID号了.可是为什么删不掉呢! --------------------编程问答-------------------- 因為你沒寫SQL語句。。。。 --------------------编程问答--------------------
引用 10 楼 huangshuli 的回复:
谢谢哈, 
现在可是可以的到ID号了.可是为什么删不掉呢!

那就是你删除的方法有问题撒 --------------------编程问答--------------------
引用 12 楼 twtetg 的回复:
引用 10 楼 huangshuli 的回复:

谢谢哈, 
现在可是可以的到ID号了.可是为什么删不掉呢! 
 
那就是你删除的方法有问题撒

呵呵 都是智慧~~~
--------------------编程问答--------------------
引用 11 楼 takako_mu 的回复:
因為你沒寫SQL語句。。。。

都是智慧~~ --------------------编程问答-------------------- protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        
        if (e.CommandName == "Delete")
        {
            公司地址更改信息 公司地址更改信息 = new 公司地址更改信息();
            int id = int.Parse(e.CommandArgument.ToString());
            公司地址更改信息.Basic_Delete(" and 记录号=" + id);
            Response.Redirect("GridViews.aspx"); 
        }
我的代码是这样的,为什么点删除没用呢
首先我肯定Basic_Delete这个方法是正确的,因为前面我都是用的同样的方法~~~
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,