首页 新闻 会员 周边

GridView和DataSet绑定,点击删除按钮 出现索引超出范围。必须为非负值并小于集合大小。

0
悬赏园豆:10 [已关闭问题]

string con = WebConfigurationManager.ConnectionStrings["insystemConnectionString"].ConnectionString;
    SqlConnection conn;
    SqlCommand com;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind();
        }
    }

//DataSet和GridView绑定
    public void bind()
    {
        conn = new SqlConnection(con);
        conn.Open();
        SqlDataAdapter thisAdapter = new SqlDataAdapter("select * from jz", conn);
        SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);
        DataSet thisDataSet = new DataSet();
        thisAdapter.Fill(thisDataSet, "jz");


        GridView1.DataSource = thisDataSet.Tables["jz"];
        GridView1.DataBind();
        GridView1.DataKeyNames = new string[] { "szd" };

        conn.Close();
    }

  //编辑按钮
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        bind();
    }           //以下为删除按钮事件
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string strsql = "delete from jz where szd=" + GridView1.DataKeys[e.RowIndex].Value.ToString();
        conn = new SqlConnection(con);
        com = new SqlCommand(strsql, conn);
        conn.Open();
        com.ExecuteNonQuery();
        conn.Close();
        bind();

    }
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        bind();
    }

问题补充: DataKeyNames主键也设置了 还是一样的 问题已解决 谢谢大家的支持
@HZS@的主页 @HZS@ | 初学一级 | 园豆:180
提问于:2009-03-30 16:57
< >
分享
其他回答(3)
0

你设置过没有DataKeyNames呢?如过又的话使用(TextBox)this.GridView1.Rows[e.RowIndex].Cells[<列数 整型>].Controls[0]).Text 尝试一下!

我QQ是 383257357 我以前做过已个例子!我可以传给你!

皇帝 | 园豆:210 (菜鸟二级) | 2009-03-30 17:06
0

DataKeyNames=new string[]{"绑定的列名"}

邢少 | 园豆:10926 (专家六级) | 2009-03-30 17:40
0

DataKeyNames,需位主键,要标志这一行

刚子85 | 园豆:205 (菜鸟二级) | 2009-03-30 20:17
0

我知道是哪里的错,兄弟我也遇到过!你不要用gridview自带的那个分页功能再试试,绝对没问题的!你可以用其他的方法分页,有很多好用的方法,就是别在footer上分页,因为删除功能只能搜索到本页的东西,翻页之后就不行了!而且我觉得啊,它自带的那个分页很不美观你觉得呢!网上有很多这样的分页功能!随便弄个就行了!找不到的话跟我说,我给你写个!呵呵!

子夜星辰 | 园豆:1613 (小虾三级) | 2009-03-31 08:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册