指定的参数已超出有效值的范围。
发布网友
发布时间:2023-05-28 18:14
我来回答
共4个回答
热心网友
时间:2024-12-03 07:23
这样错误的有几个原因:
1、Cells[0].Controls[0]控件不能转换textbox或者这个单元格的根本就没有控件,你转换时就会出现这样的错误,逐个检查下是否是该单元格,而且该单元格是否有控件。
2、检查参数大小的设置与数据库字段大小设置,是否于输入时的确超出其范围。
一般出问题的原因大多都是第一个。
能转换成textbox,该列必须是模板可编辑列,即Editemplate
热心网友
时间:2024-12-03 07:23
protected void myDV_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string connectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("update_membership", conn);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.Add(new SqlParameter("@strUserName",((TextBox)myDV.Rows[e.RowIndex].Cells[0].Controls[0]).Text ));
cmd.Parameters.Add(new SqlParameter("@strPassword",((TextBox)myDV.Rows[e.RowIndex].Cells[1].Controls[0]).Text));
cmd.Parameters.Add(new SqlParameter("@strAddress",((TextBox)myDV.Rows[e.RowIndex].Cells[2].Controls[0]).Text));
cmd.Parameters.Add(new SqlParameter("@strTel",((TextBox)myDV.Rows[e.RowIndex].Cells[3].Controls[0]).Text));
cmd.Parameters.Add(new SqlParameter("@strEmail", ((TextBox)myDV.Rows[e.RowIndex].Cells[4].Controls[0]).Text));
try
{
cmd.ExecuteNonQuery();
Label2.Text = "删除成功";
}
catch (SqlException ex)
{
Label2.Text = "删除失败" + ex.Message;
cmd.Connection.Close();
conn.Close();
BindGrid();
}
如题 可以运行但是一更新就出现指定的参数已超出有效值的范围
热心网友
时间:2024-12-03 07:24
这是你自己写的代码吗,这个代码不应该在更新事件里面,只能在绑定查询事件里面,如果要更新,不能把控件文本的值付给数据库的主键,主键是自动生成的,不允许修改
热心网友
时间:2024-12-03 07:24
你肯定是参数字符串字符串类型的声明的太短了,然后输入的太多就超过范围了