C#GridView参数引用超出范围
前台代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4"
ForeColor="#333333" GridLines="None"
OnRowDeleting="GridView1_RowDeleting"
OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating"
OnRowCancelingEdit="GridView1_RowCancelingEdit" Width="900px"
Height="339px">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="ID" HeaderText="客户编号" />
<asp:BoundField DataField="Master_Name" HeaderText="客户姓名" />
<asp:BoundField DataField="Master_Address" HeaderText="客户地址" />
<asp:BoundField DataField="Master_Tel" HeaderText="客户电话" />
<asp:BoundField DataField="Mark" HeaderText="备注" />
<asp:CommandField HeaderText="选择" ShowSelectButton="True" />
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="true" />
</Columns>
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="true" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="true" ForeColor="White" />
</asp:GridView>
后台代码:
//删除
protected void GridView1_RowDeleting(object sender,GridViewDeleteEventArgs e)
{
string S_Del_ID = (((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim());
string sqlstr = " delete from master where id=" + S_Del_ID + "";
sqlcon = new OleDbConnection(strcon);
sqlcom = new OleDbCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
bind();
}
//更新
protected void GridView1_RowUpdating(object sender,GridViewUpdateEventArgs e)
{
sqlcon =new OleDbConnection(strcon);
string S_ID = (((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim());
string S_Nane= (((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim());
string S_Address = (((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim());
string S_Tel = (((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim());
string S_Mark = (((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim());
string sqlstr = " update master set Master_Name='" + S_Nane + "' , Master_address='" + S_Address + "' ,Master_Tel='" + S_Tel + "',Mark='" + S_Mark + "' where id=" + S_ID + " ";
sqlcom=new OleDbCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex=-1;
bind();
}
删除代码里,提示(((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim());
指定的引數超出有效值的範圍。
參數名稱: index
可是更新里的就可以正常使用。
这是为什么?怎么样使删除里也可以正常使用。请指导,谢谢!