美好的一天。我使用asp.net C#进行编码,我很难使用gridview编辑保存在sql server数据库中的记录。这是我的代码
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
camConnection.ConnectionString = SqlDataSource1.ConnectionString;
camSqlDataAdapter.SelectCommand = new SqlCommand(SqlDataSource1.SelectCommand, camConnection);
camSqlDataAdapter.Fill(camDataSet);
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
TextBox pid1 = (TextBox)row.Cells[1].Controls[0];
TextBox pname1 = (TextBox)row.Cells[2].Controls[0];
TextBox pdesc1 = (TextBox)row.Cells[3].Controls[0];
TextBox pquan1 = (TextBox)row.Cells[4].Controls[0];
TextBox pprice1 = (TextBox)row.Cells[5].Controls[0];
GridView1.EditIndex = -1;
camConnection.Open();
SqlCommand cmd = new System.Data.SqlClient.SqlCommand("update productInfo set ProductName='" + Convert.ToString(pname1.Text) + "', Description='" + Convert.ToString(pdesc1.Text) + "', Quantity='" + Convert.ToString(pquan1.Text) + "', Price='" + Convert.ToString(pprice1.Text) + "' where ID='" + pid1.Text + "' ", camConnection);
cmd.ExecuteNonQuery();
camConnection.Close();
GridView1.DataSource = SqlDataSource1;
GridView1.DataBind();
}
当我执行代码并在gridview中编辑记录时,点击更新链接,发生错误说:
指定的参数超出了有效值的范围。 参数名称:index
答案 0 :(得分:0)
您的Gridview中可能有些字段为空。 所以当你写:
TextBox pid1 = (TextBox)row.Cells[1].Controls[0];
代码正在寻找一些价值。如果row.Cells[1].Controls[0]
为null,则会显示超出范围的异常。
希望这会有所帮助。
答案 1 :(得分:-1)
您的Gridview中可能有些字段为空。所以当你写:
TextBox pid1 =(TextBox)row.Cells [1] .Controls [0]; 代码正在寻找一些价值。如果row.Cells [1] .Controls [0]为null,它将显示超出范围的异常。希望这会有所帮助。