2012-05-17 41 views
0

从这个链接:的GridView批量更新

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 [email protected], [email protected] where [email protected] and [email protected] and [email protected]",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(); 





     // } 
    } 

但只有一行被更新,第一个。

请问有人能告诉我我哪里出错了。

回答

1

你已经注释掉了循环,那么为什么你想知道只有一行被更新?

foreach (GridViewRow row in GridView1.Rows) 
{ 
    // ... 
} 

除此之外,使用using-statement为您SqlConnectionSqlCommand以确保在得到处理/关闭。

using(SqlConnection Con = new SqlConnection(connStr)) 
{ 
    using(SqlCommand cmd = new SqlCommand("Update tblAvailable set [email protected], [email protected] where [email protected] and [email protected] and [email protected]",Con)) 
    { 
     // ... 
    } 
}