Как вставить новую строку datagridview в набор данных и обновить ее в базе данных?
Всем привет
Я начал программировать на C#. У меня есть проблема: я создал таблицу "проекты" с 2 строками, которые запрограммированы в
get; set;класс: ID, PROJECTS_NAME. Я уже закончил с редактированием значений в этой таблице:
private void dataGridView4_CellEndEdit(object sender, DataGridViewCellEventArgs e) { string name_project = dataGridView4.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); string id = dataGridView4.Rows[e.RowIndex].Cells[0].Value.ToString(); MySqlConnection connection = new MySqlConnection("datasource = localhost; port = 3306; username = root; password = "); MySqlCommand cmd = new MySqlCommand("UPDATE projekt1.projects SET PROJECTS_NAME = @PROJECTS_NAME WHERE ID = @ID", connection); cmd.Parameters.Add("@ID", MySqlDbType.Int64).Value = int.Parse(id); cmd.Parameters.Add("@PROJECTS_NAME", MySqlDbType.VarChar).Value = name_project; try { connection.Open(); cmd.ExecuteNonQuery(); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Столбцы SQL в таблице проектов:
PROJECT_NAME VARCHAR ID INT
И это прекрасно работает. Но у меня есть проблема с вставкой новой строки и автоматическим сохранением в базе данных.
Что я уже пробовал:
Я пробовал с RowValidated Event:
private void dataGridView4_RowValidated(object sender, DataGridViewCellEventArgs e) { string name_project = dataGridView4.Rows[e.RowIndex].Cells[1].Value.ToString(); string id = dataGridView4.Rows[e.RowIndex].Cells[0].Value.ToString(); MySqlConnection connection = new MySqlConnection("datasource = localhost; port = 3306; username = root; password = "); MySqlCommand cmd = new MySqlCommand("INSERT INTO projekt1.projects(PROJECT_NAME) VALUES(@NPROJECT_NAME);", connection); cmd.Parameters.Add("@ID", MySqlDbType.Int64).Value = int.Parse(id); cmd.Parameters.Add("@PROJECT_NAME", MySqlDbType.VarChar).Value = name_project; try { connection.Open(); cmd.ExecuteNonQuery(); connection.Close(); MessageBox.Show("ok"); } catch (Exception ex) { MessageBox.Show(ex.Message); } try { connection.Open(); cmd.ExecuteNonQuery(); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); }
Но это не сработало из-за того, что
System.FormatException: "Invalid input string format."
Может ли кто-нибудь объяснить, как это решить? Я кое-что искал, но не знаю, как с этим справиться. Приветствия