[英]Update datatable from gridview
我的項目中有一個場景,我有一個網格視圖和提交按鈕,該按鈕生成動態行,還有一個圖像按鈕Edit
,用於編輯這些行,並且這些行首先與數據表綁定,當我們單擊保存按鈕時,所有反映在數據表中的更改保存在數據庫中沒有Update
按鈕
題:
如何將先前編輯的行保存到DataTable
中?在哪種情況下如何保存?
請幫忙
將CommandName和CommandArgument放在linkButton上,然后將保存代碼放入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.