亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DataGridView 不保存對單元格的編程更改

DataGridView 不保存對單元格的編程更改

C#
慕娘9325324 2022-12-24 12:18:49
我在數據綁定的 DataGridView 中有一個復選框,選中后會打開一個彈出窗體。我填寫表格并關閉它,表格中的數據填充到該行中。但是更改沒有被保存。我能夠手動編輯單元格,并且這些單元格已成功保存。但是由于某種原因沒有以編程方式保存 - 我沒有成功確定原因。有人可以幫忙嗎?    private void dgvItemsTable_CellValueChanged ( object sender, DataGridViewCellEventArgs e )    {      if ( dgvItemsTable.Columns[e.ColumnIndex].Name == soldColumn &&        (bool)dgvItemsTable.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == true )      {        formSoldItemPopup.FillComboBoxAutoComplete ( dataSetItems, expenseTypeColumn, true );         DialogResult dialogResult = formSoldItemPopup.ShowDialog ();        if ( dialogResult == DialogResult.OK )        {          dgvItemsTable.BeginEdit ( true );          dgvItemsTable.Rows[e.RowIndex].Cells[salesChannelIDColumn].Value = Int32.Parse ( salesChannelID );          dgvItemsTable.Rows[e.RowIndex].Cells[salePriceColumn].Value = formSoldItemPopup.SalePrice;          dgvItemsTable.Rows[e.RowIndex].Cells[saleDateColumn].Value = formSoldItemPopup.SaleDate;          dgvItemsTable.Rows[e.RowIndex].Cells[expensesColumn].Value = formSoldItemPopup.Expenses;          dgvItemsTable.Rows[e.RowIndex].Cells[expenseTypeColumn].Value = formSoldItemPopup.ExpenseType;          dgvItemsTable.Rows[e.RowIndex].SetValues ();          dgvItemsTable.EndEdit ();          UpdateItemsDatabase ();              }      }    }    private void dgvItemsTable_CurrentCellDirtyStateChanged ( object sender, EventArgs e )    {      if ( dgvItemsTable.IsCurrentCellDirty )      {        dgvItemsTable.CommitEdit ( DataGridViewDataErrorContexts.CurrentCellChange );      }    }    private void dgvItemsTable_CellEndEdit ( object sender, DataGridViewCellEventArgs e )    {      UpdateItemsDatabase ();    }
查看完整描述

1 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

好的,我終于知道發生了什么事了。通過跟蹤對 DataTable 的更改,我發現接受 DataRow 級別的更改會清除 DataTable 級別的更改。下面是完美運行的最終代碼。


     DataTable dataTableSold = dataSetItems.Tables["Table"];

     DataRow[] dataRowSold = dataTableSold.Select ( "[" + itemIDColumn + "] = '" + itemID + "'" );


     dgvItemsTable.BeginEdit ( false );

     dataRowSold[0].BeginEdit ();

     dataRowSold[0][salesChannelIDColumn] = salesChannelID;

     dataRowSold[0][salePriceColumn] = formSoldItemPopup.SalePrice;

     dataRowSold[0][saleDateColumn] = formSoldItemPopup.SaleDate;

     dataRowSold[0][expensesColumn] = formSoldItemPopup.Expenses;

     dataRowSold[0][expenseTypeColumn] = formSoldItemPopup.ExpenseType;

     dataRowSold[0].EndEdit ();


     dgvItemsTable.Update ();

     UpdateItemsDatabase ();


查看完整回答
反對 回復 2022-12-24
  • 1 回答
  • 0 關注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號