簡體   English   中英

一旦WPF DataGrid單元已被編輯,MySQL更新

[英]MySQL update once WPF DataGrid cell has been edited

我有一個從MySQL查詢生成的DataGrid。 我希望能夠通過修改DataGrid直接編輯數據庫。 基本上,我需要在用戶完成單元格編輯后生成類似這樣的字符串:

偽代碼:

“ UPDATE current_table SET current_column_name = new_cell_value WHERE id =在已編輯行的隱藏的第一個單元格中的數字”

實現這一目標的最簡單方法是什么?

我嘗試查看DataGrid屬性和事件,但到目前為止,我找不到任何“ CellEditEnded”事件,也找不到如何獲取新值或該行第一個單元格中的ID。

編輯:好的,我已經取得了一些進展,現在我可以獲取id和列名,但是問題是我無法獲取新的單元格值。 我認為問題在於此代碼會在CellEditEnding-event中觸發,因此更改尚未提交。 我怎樣才能解決這個問題?

DataRowView dataRow = (DataRowView)gameDatagrid.SelectedItem;
int index = gameDatagrid.CurrentCell.Column.DisplayIndex;
string columnName = gameDatagrid.CurrentCell.Column.Header.ToString();
string cellValue = dataRow.Row.ItemArray[index].ToString();
string id = dataRow.Row.ItemArray[0].ToString();
MessageBox.Show(id + " : " + columnName + " : " + cellValue);

感謝有幫助的評論,我得以解決此問題。 完整的代碼如下:

    private void gameDatagrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
    {
        TextBox t = e.EditingElement as TextBox;
        DataRowView dataRow = (DataRowView)gameDatagrid.SelectedItem;
        int index = gameDatagrid.CurrentCell.Column.DisplayIndex;
        string columnName = gameDatagrid.CurrentCell.Column.Header.ToString();
        string newValue = t.Text;
        int id = (int)dataRow.Row.ItemArray[0];
        string query = "UPDATE table_name SET " + columnName + "=\"" + newValue + "\" WHERE id=" + id;
    }

暫無
暫無

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

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