【问题标题】:How to update a database using DataGrid C# WPF?如何使用 DataGrid C# WPF 更新数据库?
【发布时间】:2019-05-30 07:18:29
【问题描述】:

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

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

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

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>

【问题讨论】:

    标签: c# database wpf sqlite datagrid


    【解决方案1】:

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

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

    如果您想修改 DataGridView 本身的数据,事情会变得更加复杂,因为您需要跟踪在 DataGridView 上编辑了哪些行(除非您不关心优化并且可以只为每一行进行更新)行,无论它是否已被编辑)。您可以对所有修改的行使用 DataGridViewRow 列表。

    这可以理解吗?不太习惯写英文,特别是比较复杂的事情。

    【讨论】:

      猜你喜欢
      • 2020-02-27
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 2013-06-25
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多