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

关于Gridview 的rowupdating事件

 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int ID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
        string Pass = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString();
        string Sname = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString();
        string Sgender = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString();
        string Sbirth = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString();
        string Sorgin = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[8].Controls[0])).Text.ToString();
        string Schoolyear = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[9].Controls[0])).Text.ToString();
        string Sdepart = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[10].Controls[0])).Text.ToString();
        SqlConnection sqlconstr = new SqlConnection();
        sqlconstr.ConnectionString = "server=localhost;database=StudentManage;Trusted_Connection=SSPI";
        string Updatesql = "update Studentinfo set password=" + Pass + ",Sname=" + Sname + ",Sgender=" + Sgender + ",Sbirth=" + Sbirth + ",Sorgin=" + Sorgin + ",Schoolyear=" + Schoolyear + ",Sdepart=" + Sdepart + "where='" + ID.ToString() + "'";
        SqlCommand cmd = new SqlCommand(Updatesql, sqlconstr);
        sqlconstr.Open();
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        sqlconstr.Close();
        GridView1.EditIndex = -1;
        BindData();
    }

==================================================
指定的参数已超出有效值的范围。
参数名: index

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index


源错误: 


行 48:         string Sorgin = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[8].Controls[0])).Text.ToString();
行 49:         string Schoolyear = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[9].Controls[0])).Text.ToString();
行 50:         string Sdepart = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[10].Controls[0])).Text.ToString();
行 51:         SqlConnection sqlconstr = new SqlConnection();
行 52:         sqlconstr.ConnectionString = "server=localhost;database=StudentManage;Trusted_Connection=SSPI";

请问各位这是什么问题? --------------------编程问答-------------------- 调试下看看那GridView1.Rows[e.RowIndex].Cells[8].Controls[0]) 是什么东西,应该没有这个东西 --------------------编程问答-------------------- 参考一下这里面的详细代码。http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.rowupdating.aspx --------------------编程问答-------------------- 估计是GridView1.Rows里的内容访问越界了把 --------------------编程问答-------------------- 感觉你序号为8的那个里面的0号控件不是textbox
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,