簡體   English   中英

從GridView更新數據表

[英]Update datatable from gridview

我的項目中有一個場景,我有一個網格視圖和提交按鈕,該按鈕生成動態行,還有一個圖像按鈕Edit ,用於編輯這些行,並且這些行首先與數據表綁定,當我們單擊保存按鈕時,所有反映在數據表中的更改保存在數據庫中沒有Update按鈕

題:

如何將先前編輯的行保存到DataTable中?在哪種情況下如何保存?

請幫忙

將CommandName和CommandArgument放在linkBut​​ton上,然后將保存代碼放入ItemCommand()中,以使GridView可以正常工作。 哦,命令名稱應類似於“更新”,並且參數可以是該行的ID。

聲明一個數據表,在其中添加列以表示我想要從網格保存到數據庫中表的所有數據。 循環瀏覽網格中的行,從要保存的每個單元格中獲取數據,並將其添加到數據表的每一列中。 使用數據表將大量插入數據庫中的表中。

DataTable dtMealTemplate = new DataTable();
    dtMealTemplate.Columns.Add("MealTemplateID", Type.GetType("System.Int32")); 
    dtMealTemplate.Columns.Add("WeekNumber", Type.GetType("System.Int32")); 
    dtMealTemplate.Columns.Add("DayOfWeek", Type.GetType("System.String")); 
    foreach (GridViewRow gvr in GridView.Rows)
    { 
     drMT = dtMealTemplate.NewRow(); 
     drMT["MealTemplateID"] = gvr.Cells[0].text; 
     drMT["WeekNumber"] = gvr.Cells[1].text; 
     drMT["DayOfWeek"] = gvr.Cells[2].Text; 
     dtMealTemplate.Rows.Add(drMT); 
    } 

     public void InsertMealsTemplate(int iMealTemplateID, DataTable dtMealsData) 
     { 
    SqlCommand cmd = new SqlCommand(); 
    SqlDataAdapter sa = new SqlDataAdapter(cmd); 
    SqlCommandBuilder cmb = new SqlCommandBuilder(sa); 
    SqlTransaction oTrans; 
    SqlConnection oConn = new SqlConnection(GetConnectionString()); 
    DataSet ds = new DataSet(); 
    oConn.Open(); 
    cmd = oConn.CreateCommand(); 
    oTrans = oConn.BeginTransaction(); 
    cmd.Connection = oConn; 
    cmd.Transaction = oTrans; 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "SELECT * FROM YOURTABLENAME WHERE 1 = 1 ";
    sa = new SqlDataAdapter(cmd); 
    cmb = new SqlCommandBuilder(sa); 
    sa.MissingSchemaAction = MissingSchemaAction.AddWithKey; 
    cmd.Transaction = oTrans; 
    sa.Fill(ds, "yourtablename"); 
    DataRow drNew; 
    int x = 0; 
    foreach (DataRow dr in dtMealsData.Rows) 
    {
    if (Int32.Parse(dr["MealDetailsID"].ToString()) == 0) 
       { 
        drNew = ds.Tables[0].NewRow(); 
        drNew["MealTemplateID"] = dr["MealTemplateID"]; 
        drNew["WeekNumber"] = dr["WeekNumber"]; 
        drNew["DayOfWeek"] = dr["DayOfWeek"]; 
        ds.Tables[0].Rows.Add(drNew); 
        } 
    } 
    sa.Update(ds.Tables["yourtablename"]); 
    oTrans.Commit(); 
    oConn.Close(); 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM