У меня есть DataGridView (DGV), связанный с базой данных SQlite.Я хочу обновить некоторую информацию о DGV.Итак, у меня есть контекстное меню, которое позволяет мне изменить один столбец и обновить базу данных.Я хочу иметь возможность выбирать несколько строк и редактировать их.Например: если я выбрал пять строк и изменил тип с аварийных сигналов на ошибки;изменение отражается в DGV, а затем, когда я просматриваю базу данных, изменение не отражается.Обновлена только одна строка.
Мой фрагмент кода ниже
foreach (DataGridViewRow r in dataGridView1.SelectedRows)
{
SQLiteTransaction SQLiteTrans = connection.BeginTransaction();
SQLiteCommand cmd = connection.CreateCommand();
MessageBox.Show(r.ToString());
if (r.Cells["typeDataGridViewTextBoxColumn"].Value.ToString().Contains("#") == false)
{
r.Cells["typeDataGridViewTextBoxColumn"].Value = r.Cells["typeDataGridViewTextBoxColumn"].Value.ToString() + " # " + max;
}
else
{
r.Cells["typeDataGridViewTextBoxColumn"].Value = r.Cells["typeDataGridViewTextBoxColumn"].Value.ToString().Substring(0, r.Cells["typeDataGridViewTextBoxColumn"].Value.ToString().IndexOf("#")) + "# " + max;
}
string querytext = "Update LogDatabase set Type = \"" + r.Cells["typeDataGridViewTextBoxColumn"].Value + "\" where HashKey = \"" + r.Cells["hashKeyDataGridViewTextBoxColumn"].Value.ToString() + "\"";
cmd.CommandText = querytext;
cmd.ExecuteNonQuery();
SQLiteTrans.Commit();
}
У меня нет большого опыта работы с SQL.Поэтому я не уверен, что что-то не так с тем, как я обновил базу данных!
Что мне нужно отредактировать, чтобы убедиться, что все строки также обновляются в БД ?!
Помощь оценена.
Редактировать: Попытка проверки запроса перед его отправкой.
Когда я пытаюсь редактировать несколько строк вDGV без сортировки DGV по любому столбцу работает и обновляет все строки одновременно ... Но когда я пытаюсь отсортировать их по типу и затем редактировать строки, тот же запрос проходит!: |(Ключ хэша не изменяется)
Похоже, одна строка продолжает перемещаться вверх по списку строк и всегда является строкой r в цикле for.
Редактировать 2: Это определенно проблема со строками DGV Каждый раз, когда я сортирую DGV и затем пытаюсь редактировать поля, запросы имеют значения хеш-ключа, отличные откак только это я выбрал.Это как идентификаторы строк полностью изменены после одного обновления.Похоже, DGV автоматически сортирует, как только одна строка обновляется!
Есть ли способ отключить это ???!