Сохранение данных из datagrid в SQL все сразу
Привет У меня есть приложение winform на c# , которое позволяет редактировать таблицы из моей базы данных sql. Мне удалось открыть таблицы и отредактировать их, но когда я сохраняю данные, все строки реплицируются. Есть ли способ сделать это, но только отредактировать необходимые поля или вставить, если будет добавлено новое? Я попробовал команду обновления, но она не работает. код, который я использую, таков:
Что я уже пробовал:
using (SqlConnection con = new SqlConnection(cs)) { con.Open(); foreach (DataGridViewRow row in dataGridView1.Rows) { if (!row.IsNewRow) { using (SqlCommand cmd = new SqlCommand("INSERT INTO temp (data1, data2, data3, data4) VALUES(@c1,@c2,@c3,@c4)", con)) { cmd.Parameters.AddWithValue("@C1", row.Cells[0].Value); cmd.Parameters.AddWithValue("@C2", row.Cells[1].Value); cmd.Parameters.AddWithValue("@C3", row.Cells[2].Value); cmd.Parameters.AddWithValue("@C4", row.Cells[3].Value); cmd.ExecuteNonQuery(); } } } }
Tomas Takac
Каждая строка должна иметь уникальный идентификатор. Вам нужно знать, какая строка является новой, а какая была обновлена. Допустим, все новые строки будут иметь id=0, а отредактированные строки будут иметь id>0. Исходя из этого, вы либо выдаете команду INSERT, либо UPDATE.
Marc-IT
Привет Томас,
Спасибо за ответ, это имеет смысл.
Я добавил первичный ключ в качестве идентификатора с помощью автоинкремента.
У вас есть пример кода, как я могу проверить наличие идентификатора ?