如何使用DataGrid C#WPF更新数据库?

时间:2019-05-30 07:18:30

标签: c# database wpf sqlite datagrid

我想用dataGrid更新数据库(SQLite)。 我可以更改dataGrid中的值,但更改不适用于数据库 那就是为什么我想添加一个按钮“保存”以保存在dataGrid中应用的所有更改,

我搜索了问题,但找不到答案

这是我的C#代码,用于填充DataGrid:

SQLiteConnection sQLiteConnection = new SQLiteConnection("Data source = dataSet.db ; version = 3 ;");
        SQLiteCommand sQLiteCommand; 
        SQLiteDataAdapter sQLiteDataAdapter; 
        System.Data.DataTable dataTable = new System.Data.DataTable("Naamaa");
        SQLiteCommandBuilder cmd;
        DataSet ds;
        public ManipulateData(string wilaya, int theme)
        {
            InitializeComponent();

            try
            {
                sQLiteConnection.Open();
                sQLiteCommand = new SQLiteCommand(sQLiteConnection);
                sQLiteCommand.CommandText = "SELECT * FROM " + wilaya + " ;";
                sQLiteCommand.ExecuteNonQuery();
                sQLiteDataAdapter = new SQLiteDataAdapter(sQLiteCommand);
                sQLiteDataAdapter.Fill(dataTable);

                McDataGrid.ItemsSource = dataTable.DefaultView;


            }catch
            {
                MessageBox.Show("Error");
            }
        }

这是xaml代码:

<Grid Background="White">
        <DataGrid x:Name="McDataGrid"  />
</Grid>

1 个答案:

答案 0 :(得分:0)

目前我正在做一些非常相似的事情,只是我正在使用Postgres。

一种简单的方法是将DataGridView.ReadOnly属性设置为true,然后,当用户在DataGridView中选择一行时,您可以启动Windows窗体,其中包含该选定行中的所有数据以及一个“保存”按钮,更新数据库中的数据。然后,从该按钮中,您只需要使用从表单中收集的数据启动对数据库的更新查询。

如果要修改DataGridView本身上的数据,事情将变得更加复杂,因为您需要跟踪在DataGridView上已编辑了哪些行(除非您不关心优化,而可以对每个单独的行进行更新行,无论是否已对其进行编辑)。您可以将DataGridViewRow的列表用于所有已修改的行。

那可以理解吗?不太习惯写英语,特别是在相当复杂的事情上。