Как обновить базу данных с помощью DataGrid C # WPF? - PullRequest
0 голосов
/ 30 мая 2019

Я хочу обновить базу данных (SQLite) с помощью dataGrid.Я могу изменить значения в 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 голосов
/ 30 мая 2019

В данный момент я работаю над чем-то похожим, только с использованием Postgres.

Один из простых способов сделать это - установить для свойства DataGridView.ReadOnly значение true, затем, когда пользователь выбирает строку в DataGridView, вы можете запустить форму Windows со всеми данными из выбранной строки и «Сохранить».Кнопка для обновления данных в базе данных.Затем с этой кнопки вам нужно только запустить запрос на обновление базы данных с данными, собранными из формы.

Если вы хотите изменить данные в самом DataGridView, все усложняется, так как вам нужно отслеживать, какиестроки были отредактированы в DataGridView (если вы не заботитесь об оптимизации и можете просто обновить каждую строку, независимо от того, была ли она отредактирована или нет).Вы можете использовать список DataGridViewRow для всех измененных строк.

Было ли это понятно?Не очень часто пишут по-английски, особенно по довольно сложным вопросам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...