从这个链接:
asp.net grid view bulk updating all cells
我做了以下事情:
protected void ButtonUpdate_Click(object sender, EventArgs e)
{
// foreach (GridViewRow row in GridView1.Rows)
// {
int RowIndex = 0;
GridViewRow row = (GridViewRow)GridView1.Rows[RowIndex];
Int32 intresortID = Convert.ToInt32(Request.QueryString["TypeID"]);
Label dtm = row.FindControl("Label1") as Label;
Label strRoomType = row.FindControl("strRoomTypeLabel") as Label;
Label strDescription = row.FindControl("Label3") as Label;
TextBox Qty = row.FindControl("intQtyTextBox") as TextBox;
TextBox Price = row.FindControl("curPriceTextBox") as TextBox;
Label intWSCode = row.FindControl("intWSCodeLabel") as Label;
string connStr = ConfigurationManager.ConnectionStrings["bedbankstandssConnectionString"].ConnectionString;
SqlConnection Con = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand("Update tblAvailable set intqty=@intQty, curprice=@curprice where intresortid=@intresortid and dtm=@dtm and strroomtype=@strroomtype",Con);
//SqlParameter ddtm= new SqlParameter("@dtm",dtm) ;
//SqlParameter sstrRoomType = new SqlParameter("@strroomtype", strRoomType);
//SqlParameter qQty = new SqlParameter("@intQty", Qty);
//SqlParameter pPrice =new SqlParameter("@curPrice",Price);
//SqlParameter resortID = new SqlParameter("@intResortID", intresortID);
cmd.Parameters.AddWithValue("@dtm",dtm.Text.Trim());
cmd.Parameters.AddWithValue("@strroomtype",strRoomType.Text.Trim());
cmd.Parameters.AddWithValue("@intQty", Qty.Text.Trim());
cmd.Parameters.AddWithValue("@curPrice",Price.Text.Trim());
cmd.Parameters.AddWithValue("@intResortID",intresortID);
Con.Open();
cmd.ExecuteNonQuery();
GridView1.EditIndex = -1;
DataBind();
// }
}
但只有一行得到更新,第一行。
请有人能告诉我哪里出错了。
答案 0 :(得分:1)
你已经注释掉了循环,那你为什么想知道只有一行被更新?
foreach (GridViewRow row in GridView1.Rows)
{
// ...
}
除此之外,请使用SqlConnection
和SqlCommand
using-statement
来确保处置/关闭。
using(SqlConnection Con = new SqlConnection(connStr))
{
using(SqlCommand cmd = new SqlCommand("Update tblAvailable set intqty=@intQty, curprice=@curprice where intresortid=@intresortid and dtm=@dtm and strroomtype=@strroomtype",Con))
{
// ...
}
}