#c# #database #ms-access #oledb #delete-row
Вопрос:
У меня есть следующий код:
foreach (DataGridViewRow row in dtGrdViewOgr.SelectedRows)
{
dtGrdViewOgr.Rows.RemoveAt(row.Index);
}
Код хорошо работает, когда дело доходит до удаления строки из представления таблицы данных, однако он не удаляет ее реальную строку базы данных. Для этого мне нужно либо сохранить отредактированное представление таблицы данных, либо написать команду, предназначенную для базы данных. Я не знаю точно, что здесь использовать, не могли бы вы мне помочь. Я использую Данные.OleDB
Ответ №1:
Попробуйте что-нибудь вроде этого:
Для строки подключения безопасности стандарта mssql:
constr = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand delcmd = new OleDbCommand();
delcmd.CommandText = "DELETE FROM tb1 WHERE ID=" dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
con.Open();
delcmd.Connection = con;
delcmd.ExecuteNonQuery();
con.Close();
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
Комментарии:
1. Хм, я получаю «Исключение System.NullReferenceException:» Ссылка на объект не установлена на экземпляр объекта». » ошибка в строке: oDBCom. CommandText = «УДАЛИТЬ ИЗ tblOgrBil, ГДЕ ID=» dtGrdViewOgr. Текущий день. Ячейки[0].Значение. toString();
2. попробуйте dataGridView1.selectedRows[i]. Ячейки[0].Значение. toString() вместо dataGridView1.selectedRows[0]. Ячейки[0].Значение. toString() — > если ваш идентификатор данных является первой ячейкой строки.
3. Я действительно попробовал это сделать, прежде чем придумать свое собственное решение, к сожалению, оно дало точно такую же ошибку. Также я должен добавить, почему вы добавили последнюю
""
часть?4. Да, эту часть следует удалить. Какое событие вы используете для этого ? DatagridviewChangeIndex, Нажмите И Т.д.?
5. я использую кнопку.нажмите