Как добавить данные в базу MySQL из DataGrid C#?
Как добавить данные вводимые в DataGrid в базу данных MySQL? Добавленных данных нет в базе, и ошибок, почему это происходит тоже нет. Я пытаюсь решить эту проблему уже несколько дней. Использую WPF.
private void dtGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
Отслеживать
задан 4 ноя 2018 в 18:40
21 1 1 серебряный знак 2 2 бронзовых знака
4 ноя 2018 в 19:45
посмотрите здесь: ru.stackoverflow.com/a/900352/261244
4 ноя 2018 в 20:05
@Andrew, там под Windows Forms
5 ноя 2018 в 9:24
@ЕвгенийКрасильников Если вы не можете адаптировать код с WinForms под WPF, то может вам стоит начать изучение языка с чего то более простого?
5 ноя 2018 в 9:37
@ЕвгенийКрасильников EvgeniyZ прав. Адаптация кода с WinForms на WPF это просто на столько базовый скил, что тебе явно нужно еще изучать язык перед тем, как делать подобные задачи как в вопросе. Ответ я подсказал, но с адаптацией кода игратся за тебя я чет не очень хочу)
5 ноя 2018 в 10:28
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Проблема в том, что вы в коде никак не задействуете DataGrid. Вы создаете пустой DataSet, заполняете его данными из базы, и потом эти же самые данные записываете назад в базу. Правильно нужно делать так:
Допустим, мы хотим сделать DataGrid, привязанную к DataTable. Сразу в конструкторе окна создадим DbDataAdapter и DataTable (нет необходимости это делать при каждом обновлении, так как структура данных и запросы то не меняются), и сохраним их в полях класса окна.
DbDataAdapter adapter; DataTable dt; public MainWindow() < InitializeComponent(); MySqlConnection conn = DBUtils.GetDBConnection(); string table = "brands"; string sql = "SELECT * FROM "+table; adapter = new MySqlDataAdapter(sql, conn); conn.Open(); MySqlCommandBuilder myCommandBuilder = new MySqlCommandBuilder(adapter as MySqlDataAdapter); adapter.InsertCommand = myCommandBuilder.GetInsertCommand(); adapter.UpdateCommand = myCommandBuilder.GetUpdateCommand(); adapter.DeleteCommand = myCommandBuilder.GetDeleteCommand(); dt = new DataTable(); adapter.Fill(dt); //загрузка данных datagrid.ItemsSource = dt.DefaultView; //привязка к DataGrid >
Теперь, когда нужно сохранить данные (я не рекомендую сохранять при каждом изменении строки, так как будет слишком много запросов в базу, лучше создать кнопку «Сохранить»), выполним Update на той же DataTable.
private void ButtonSave_Click(object sender, RoutedEventArgs e)
Kак сохранить изменения в DataGrid VC#?
Доброй ночи! Вытащил из базы данные в колоночку. Все круто отображается. Но после редактирования — не сохраняется естественно. Как на примере моего кода реализовать что-то вроде DbDataAdapter.Update (DataTable) чтобы поставить кнопочку ЗАСЕЙВИТЬ и естественно все изменения, добавления и удаляния сейвились в MySQL. Вот код:
private DataTable GetCats() < DataTable dt = new DataTable(); MySqlConnectionStringBuilder mysqlCSB; mysqlCSB = new MySqlConnectionStringBuilder(); mysqlCSB.Server = textBox1.Text; mysqlCSB.Database = textBox2.Text; mysqlCSB.UserID = textBox3.Text; mysqlCSB.Password = textBox4.Text; string queryString = @"SELECT blablabla FROM blablabla WHERE blabla IN (SELECT blabla FROM blablabla WHERE blablabla='blablabla')"; using (MySqlConnection con = new MySqlConnection()) < con.ConnectionString = mysqlCSB.ConnectionString; MySqlCommand com = new MySqlCommand(queryString, con); try < con.Open(); using (MySqlDataReader dr = com.ExecuteReader()) < if (dr.HasRows) < dt.Load(dr); >> > catch (Exception ex) < MessageBox.Show(ex.Message); >> return dt; >
- Вопрос задан более трёх лет назад
- 485 просмотров
Сохранение из DataGridView в MySQL
Сохранение массива datagridview в базу MySQL
Есть заполняющаяся таблица datagridviwe. c 5 столбцами код,названия,количество,ценаза1,оплата.
Сохранение изменений таблиц MySQL из DataGridView
Здравствуйте, уважаемые коллеги! На форме имеется TabControl. При помощи нехитрых манипуляций в.
Сохранение DataGridView
Здравствуйте, уважаемые форумчане. Имею приложение на Windows Forms, в которой имеется.
сохранение DataGridView
Здравствуйте. Помогите пожалуйста решить Такой момент: допустим есть у нас таблица с ней.
17 / 17 / 17
Регистрация: 31.10.2014
Сообщений: 79
Что именно нужно? Какой-то определенный элемент из дата грида вставить в БД?
Регистрация: 07.11.2013
Сообщений: 156
Сообщение от bublegums 
Что именно нужно? Какой-то определенный элемент из дата грида вставить в БД?
Надо сохранить все содержание с DataGridView в таблицу в БД
Добавлено через 11 часов 32 минуты
чтение делаю так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
//. connStr = "Database="+dbName+";Data Source=" + serverName + ";User + userName + ";Password=" + password; conn = new MySqlConnection(connStr); MySqlDataAdapter MyData = new MySqlDataAdapter(); strTable = _table; string sql = "SELECT * FROM " + strTable; // Строка запроса MyData.SelectCommand = new MySqlCommand(sql, conn); conn.Open(); DataTable table = new DataTable(); MyData.Fill(table); BindingSource bsource = new BindingSource(); bsource.DataSource = table; dbDataGridView.DataSource = bsource; conn.Close(); //.
А вот как сделать запись в БД в таблицу всего содержимого DataGridView не пойму, помогите, пожалуйста.
Регистрация: 12.12.2015
Сообщений: 38
javavirys, Тут все просто на самом деле:
1 2 3
//фиксируем измененные данные bsource.EndEdit(); MyData.AcceptChanges();
Только объявление DataTable и BindingSource вынесите за пределы процедуры
Добавлено через 14 минут
javavirys, Забыл добавить между EndEdit() и AcceptChanges()
MyData.Update(table)
Регистрация: 07.11.2013
Сообщений: 156
dimkadv2,
Кликните здесь для просмотра всего текста
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
using System; using System.Drawing; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data; namespace Kr_Visual_IDE { public partial class Form1 : Form { private DataGridView dbDataGridView = new DataGridView(); ConnectionForm auth; MySqlConnection conn; MySqlDataAdapter MyData; DataTable table; BindingSource bsource; string connStr; string strTable; public Form1() { InitializeComponent(); SetupDataGridView(); auth = new ConnectionForm(this); } private void SetupDataGridView() { Controls.Add(dbDataGridView); dbDataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy; dbDataGridView.ColumnHeadersDefaultCellStyle.ForeColor = Color.White; dbDataGridView.ColumnHeadersDefaultCellStyle.Font = new Font(dbDataGridView.Font, FontStyle.Bold); dbDataGridView.Name = "dbDataGridView"; dbDataGridView.Location = new Point(8, 8); dbDataGridView.Size = new Size(500, 250); dbDataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; dbDataGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; dbDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single; dbDataGridView.GridColor = Color.Black; dbDataGridView.RowHeadersVisible = false; dbDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dbDataGridView.MultiSelect = false; //dbDataGridView.Dock = DockStyle.Fill; Form1_Resize(null, null); } public void LoadMySql(string serverName, string userName, string dbName, int port, string password, string _table) { connStr = "Database="+dbName+";Data Source=" + serverName + ";User + userName + ";Password=" + password; conn = new MySqlConnection(connStr); MyData = new MySqlDataAdapter(); strTable = _table; string sql = "SELECT * FROM " + strTable; // Строка запроса MyData.SelectCommand = new MySqlCommand(sql, conn); conn.Open(); table = new DataTable(); MyData.Fill(table); bsource = new BindingSource(); bsource.DataSource = table; UpdateGrid(bsource); conn.Close(); } public void UpdateGrid(BindingSource bsource) { dbDataGridView.DataSource = bsource; dbDataGridView.AutoResizeColumnHeadersHeight(); } private void connectToolStripMenuItem_Click(object sender, EventArgs e) { auth.ShowDialog(this); } private void disconnectToolStripMenuItem_Click(object sender, EventArgs e) { try { conn.Close(); dbDataGridView.Columns.Clear(); }catch(Exception ex){ MessageBox.Show("Error: " + ex.Message); } } private void Form1_Resize(object sender, EventArgs e) { dbDataGridView.Left = 1; dbDataGridView.Top = 25; dbDataGridView.Width = this.Width - 20; dbDataGridView.Height = this.Height - 32; } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { bsource.EndEdit(); MyData.Update(table); table.AcceptChanges(); } } }
Возникает ошибка в «private void saveToolStripMenuItem_Click(object sender, EventArgs e)»:
Кликните здесь для просмотра всего текста
Необработанное исключение типа «System.InvalidOperationException» произошло в System.Data.dll
Дополнительные сведения: Для элемента Update требуется действительный InsertCommand при передаче коллекции DataRow с новыми строками.
Что я не так делаю?
Добавлено через 12 минут
Что за InsertCommand в ошибке?
Как редактировать и сохранять изменения в базу данных, выведенную в Datagridview
Как добавлять в базу данных sql и сохранять изменения
Всем доброго времени суток,нужна помощь,подскажите пожалуйста как добавить запись в базу.
Как сохранить изменения в DataGridView в базу данных?
Господа программисты. Подскажите, пожалуйста. Работаю на vb.net 2015 и sql server 2008. Делаю.
Как сохранять изменения в dataGridView в БД?
подскажите парни, как сохранять изменения в dataGridView?
Внести изменения, выполненные в DataGridView, в базу данных без использования запросов
Подключаю к DataGridViev файл *accdb через свойство DataSource. По разным кнопкам вношу изменения.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Когда и как сохранять базу данных?
Привет! Для работы RecyclerView использую базу данных. Для этого, в методе onCreate основной.
Как сохранять данные из Data Grid View в базу данных SQL
Добрый вечеро. Подскажите пожалуйста как сохранять данные в из data grid view в таблицу. Таблица.
Как реализовать чтоб путь к картинке можно было сохранять в базу данных?
Написал короче приложение которое после нажатия "PICK" можно выбирать картинку и выставлять на.

Как удаленно подключить и редактировать базу данных MySQL средствами Delphi
Здравствуйте. Есть база данных MySQL на удаленном сервере, можно ли сделать так, что бы Delphi.
Как сохранять в базу данных числа, у которых бесконечный остаток так, чтобы не было видно бесконечного остатка?
Я уже несколько раз поднимал этот вопрос на форуме, но тогда он косался вывода в Label. Теперь мне.
Как сохранить изменения в базу данных?
Добрый день! Есть цикл, который выводить данные из базы данных для их изменения. Как сохранить эти.
