读书人

指定的参数已超出有效值的范围。 参数

发布时间: 2012-04-03 12:38:19 作者: rapoo

指定的参数已超出有效值的范围。 参数名: index
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
oleconn = new OleDbConnection(strlj);
string strup = "update subject set subject='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString() + "' where id=" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "";
olecom = new OleDbCommand(strup, oleconn);
oleconn.Open();
olecom.ExecuteNonQuery();
oleconn.Close();
GridView1.EditIndex = -1;
Bind();
}
这是部分代码,这句出的问题,大侠们帮帮忙啊

[解决办法]
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString()





GridView1.DataKeys[e.RowIndex].Value.ToString()


这两个取不到值
[解决办法]
Controls[0]应该不会有问题

Rows[e.RowIndex]

Cells[1]

就这两个地方用到index了,调式一下看看那里不对了

[解决办法]
还有这个GridView1.DataKeys[e.RowIndex]

你调试一下不就知道了,大家也不知道你GridView1里面是什么
[解决办法]
哎,自己单步调试吗,然后看看GirdView里面的具体情况,看看你要找的textbox 在那一列就晓得了。
出了问题,你自己debug的?
[解决办法]
你也真够懒得,不要讲太多代码混在一起,除了错都不知道是哪里

//先用FindControl()方法找到你要取值的控件

TextBox txt=GridView1.Rows[e.RowIndex].FindControl("文本框的ID") as TextBox;

string name=txt.Text;//这里取值

这样分开写,你调试的时候就知道具体在哪个点除了问题了
[解决办法]
是不是你传到数据库的参数不对应?
譬如说你数据库设定的是int型,页面传过去的不是int
[解决办法]

探讨

你也真够懒得,不要讲太多代码混在一起,除了错都不知道是哪里

//先用FindControl()方法找到你要取值的控件

TextBox txt=GridView1.Rows[e.RowIndex].FindControl("文本框的ID") as TextBox;

string name=txt.Text;//这里取值

这样分开写,你调试的时候就知道具体在哪个点除了问题了
……

读书人网 >asp.net

热点推荐