Как сохранить изменения datagrid в mysql

от admin

Как сохранить изменения datagrid в mysql

Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6

Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.

Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет выглядеть примерно следующим образом:

Код формы будет выглядеть следующим образом:

Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.

В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:

Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:

В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:

В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление и из таблицы в DataSet:

Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные. Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:

Как в прошлой теме здесь устанавливается у адаптера команда на добавление InsertCommand и затем вызывается метод Update() . В итоге мы можем добавить несколько строк, удалить, изменить, и потом один раз мы нажмем на кнопку, и все изменения будут применены к базе данных.

Русские Блоги

C # подключение к базе данных MySql (два) — изменение содержимого базы данных через DataGridView

Шаги по подключению к базе данных через DataSet:

1. ** Определите оператор подключения connStr: **, например, строку connStr = "server = localhost; user password = 123456; persistsecurityinfo = True; database = classicmodels";

2.Определите оператор команды Mysql cmdStr,

Например, строка cmdStr = "выберите * из клиентов";

3.Определите объект MySqlConnection
MySqlConnection conn = new MySqlConnection(connStr);

4.Подключиться к базе данныхconn.open();

5.Определите MySqlDataAdapterЕго параметры построения — это оператор команды MySql и объект MySqlConnection.
, например MySqlDataAdapter adapter = new MySqlDataAdapter (cmdStr, conn)

6. Добавьте таблицу, полученную при подключении к базе данных в объекте адаптера, к объекту DataSet с помощью метода Fill ().
adapter.Fill (ds, ‘tableName’) // Имя таблицы настроено и не имеет ничего общего с базой данных

Конкретный код выглядит следующим образом

Подключение с помощью метода try catch более безопасно

Как отобразить данные базы данных в элементе управления DataGridView

После того, как соединение с базой данных завершено, вам нужно только перетащить элемент управления DataGridView и кнопку Button в окно и установить источник данных DataGridView в таблицу в ранее определенном объекте DataSet в событии нажатия кнопки
dataGridView1.DataSource = ds.Tables[“customer”];
Название скобки написано в методе Fill ранее

Читать:
Напишите функцию которая находит количество единиц в двоичной записи числа

Код реализации

Окончательный эффект

Как изменить базу данных в элементе управления DataGridView

Прежде всего, мы должны сначала понять генератор команд MySqlCommandBulider
Поскольку каждый раз писать операторы MysqlCmd сложно, вы можете использовать объект MySqlCommandBulider для автоматического получения этих команд.

Объект DataSet имеет четыре типичных функции:Вставить, удалить, обновить и выбратьФактически, мы завершили вызов операторов MySQL, определенных четырьмя свойствами объекта DataSet, например, SelectCommand соответствует оператору Select, а DeleteCommand соответствует оператору Delete.

Поэтому для работы с базой данных после определения объекта адаптера определите объект MySqlCommandBulider, параметром инициализации которого является адаптер. Затем используйте методы Add, Delete, Modify и Check MySqlCommandBulider для инициализации свойств адаптера.

Затем вы можете напрямую изменять данные в DataGridView
При переключении между двумя таблицами вы можете определить переменную Cur, чтобы определить, какая таблица в настоящее время должна быть изменена.

эффект:

В Workbench видно, что модификация действительно прошла успешно.

Как добавить данные в базу MySQL из DataGrid C#?

Как добавить данные вводимые в DataGrid в базу данных MySQL? Добавленных данных нет в базе, и ошибок, почему это происходит тоже нет. Я пытаюсь решить эту проблему уже несколько дней. Использую WPF.

Проблема в том, что вы в коде никак не задействуете DataGrid. Вы создаете пустой DataSet, заполняете его данными из базы, и потом эти же самые данные записываете назад в базу. Правильно нужно делать так:

Допустим, мы хотим сделать DataGrid, привязанную к DataTable. Сразу в конструкторе окна создадим DbDataAdapter и DataTable (нет необходимости это делать при каждом обновлении, так как структура данных и запросы то не меняются), и сохраним их в полях класса окна.

Теперь, когда нужно сохранить данные (я не рекомендую сохранять при каждом изменении строки, так как будет слишком много запросов в базу, лучше создать кнопку «Сохранить»), выполним Update на той же DataTable.

Как сохранить данные многострочного DataGridView в базу данных MySQL в C #

У меня есть несколько данных строк в одном столбце. Мне нужно сохранить все данные в базу данных MySQL. Но он сохраняет только данные выбранных строк только в DataGridView.

Ниже приведен пример кода.

Цените любую помощь Спасибо!

3 ответа

Один из способов — использовать цикл Foreach для получения значения всех строк один за другим в DataGridView, а затем вставить их.

Дорогой mbharanidharan88 и user3501749, Спасибо за быструю поддержку. С вашим sup я люблю новый код. Ниже приведен мой полный рабочий код (для меня).

Если что-то не так, дайте мне знать

Если вы хотите сохранить все строки из своего Gridview, то пропустите его и получите значение столбца для сохранения.

Также, если вы хотите сохранить/обновить базу данных, вы должны использовать ExecuteNonQuery. Наконец, удалите объекты, которые вы создаете, и причину использования.

Похожие статьи