GridView更新出错
再使用GridView更新操作在 st_comm.Parameters[ "@Student_home "].Value = st_st_colvalue;时出错提示st_comm.Parameters[ "@Student_home "].Value : “st_comm.Parameters[ "@Student_home "]”引发“System.IndexOutOfRangeException”类型的异常,请帮帮忙谢谢
代码:
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow gvr=this.GridView1.Rows[e.RowIndex];
//创建命令字符
SqlCommand st_comm = new SqlCommand( "update_student_1 ",st_conn);
//指定为调用存储过程
st_comm.CommandType = CommandType.StoredProcedure;
try
{
//添加数据参数
st_comm.Parameters.Add(new SqlParameter( "@Student_name ", SqlDbType.VarChar,50));
st_comm.Parameters.Add(new SqlParameter( "@Student_sex ", SqlDbType.Char, 10));
st_comm.Parameters.Add(new SqlParameter( "@Student_nation ",SqlDbType.Char,10));
st_comm.Parameters.Add(new SqlParameter( "@Student_birthday ", SqlDbType.DateTime, 8));
st_comm.Parameters.Add(new SqlParameter( "@Student_time ", SqlDbType.DateTime, 8));
st_comm.Parameters.Add(new SqlParameter( "@Student_classid ", SqlDbType.VarChar, 50));
st_comm.Parameters.Add(new SqlParameter( "Student_home ", SqlDbType.VarChar, 50));
st_comm.Parameters.Add(new SqlParameter( "Student_else ", SqlDbType.VarChar, 50));
st_comm.Parameters.Add(new SqlParameter( "Student_id ", SqlDbType.BigInt, 8));
string st_st_colvalue = ((TextBox)gvr.Cells[1].Controls[0]).Text;
st_comm.Parameters[ "@Student_name "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[2].Controls[0]).Text;
st_comm.Parameters[ "@Student_sex "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[3].Controls[0]).Text;
st_comm.Parameters[ "@Student_nation "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[4].Controls[0]).Text;
st_comm.Parameters[ "@Student_birthday "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[5].Controls[0]).Text;
st_comm.Parameters[ "@Student_time "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[6].Controls[0]).Text;
st_comm.Parameters[ "@Student_classid "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[7].Controls[0]).Text;
st_comm.Parameters[ "@Student_home "].Value = st_st_colvalue;
st_st_colvalue = ((TextBox)gvr.Cells[8].Controls[0]).Text;
st_comm.Parameters[ "@Student_else "].Value = st_st_colvalue;
st_comm.Parameters[ "@Student_id "].Value = GridView1.DataKeys[e.RowIndex].Value;
//打开数据库连接
st_comm.Connection.Open();
//执行
st_comm.ExecuteNonQuery();
st_lbl_note.Text = "编辑成功 ";
GridView1.EditIndex = -1;
}
catch
{
//当更新不成功时将返回如下信息给页面
st_lbl_note.Text = "编辑失败,请重新输入 ";
st_lbl_note.Style[ "color "] = "red ";
}
st_comm.Connection.Close();
ST_BindGrid();
}
[解决办法]
呵,你上面用的st_comm.Parameters.Add(new SqlParameter( "Student_home ", SqlDbType.VarChar, 50));
下面又用@Student_home没有找到
[解决办法]
st_comm.Parameters.Add(new SqlParameter( "Student_home ", SqlDbType.VarChar, 50));
-->
st_comm.Parameters.Add(new SqlParameter( "@Student_home ", SqlDbType.VarChar, 50));