单击更新的时候出现错误:
“/WebSite2”应用程序中的服务器错误。
--------------------------------------------------------------------------------指定的参数已超出有效值的范围。
参数名: index
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index前台:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating" DataKeyNames="ID">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="名字" />
<asp:BoundField DataField="Sex" HeaderText="性别" />
<asp:CommandField ShowSelectButton="True" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
后台:
sqlcon = new SqlConnection();
string sqlstr = "update info set Name='"
+ ((TextBox)(GridView1.Rows[1].Cells[0].Controls[0])).Text.ToString().Trim() + "',Sex='"
+ ((TextBox)(GridView1.Rows[2].Cells[1].Controls[0])).Text.ToString().Trim() + "' where ID='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
“/WebSite2”应用程序中的服务器错误。
--------------------------------------------------------------------------------指定的参数已超出有效值的范围。
参数名: index
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index前台:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating" DataKeyNames="ID">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="名字" />
<asp:BoundField DataField="Sex" HeaderText="性别" />
<asp:CommandField ShowSelectButton="True" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
后台:
sqlcon = new SqlConnection();
string sqlstr = "update info set Name='"
+ ((TextBox)(GridView1.Rows[1].Cells[0].Controls[0])).Text.ToString().Trim() + "',Sex='"
+ ((TextBox)(GridView1.Rows[2].Cells[1].Controls[0])).Text.ToString().Trim() + "' where ID='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
Rows[2]怎么同时会更新2行?
GridView1.Rows[1].Cells[1].Controls[0]
判断有几行数据
ID Name Sex
1 张三 男
2 李四 女
+ ((TextBox)(GridView1.Rows[2].Cells[1].Controls[0])).Text.ToString().Trim() + "' where ID='"Rows 數據有幾行???
還是動態的???
string sqlstr = "update info set Name='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim() + "',Sex='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "' where ID='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
运行之后就显示这样:
ID Name Sex
1 张三 男
2 李四 女
而你根本没有第三行
问题在这