У меня было много проблем с привязкой базы данных (я использую Northwind) к DataGridView.
Я пробовал разные подходы, но ни один не работал для всех операций, только некоторые.
Я также спрашивал на других сайтах, но до сих пор не получил ни одного полезного совета.
Существует ли учебное пособие, которое охватывает действительно все операции CRUD (или комбинацию нескольких учебных пособий, которые вместе охватывают все)?
Особенно операция удаления вызывает у меня головную боль, так как единственный совет, который я получил, состоит в том, чтобы поместить мой код удаления в какое-то событие DataGridView, но проблема в том, что я не могу найти способ определить, что именно пользователь хочет удалить, и событие KeyDown не сработает для ключа удаления.
Спасибо!
EDIT:
Большое спасибо. Этот документ очень полезен.
У меня есть другой вопрос, хотя, у меня есть DataTable в качестве источника данных для DataGridView.
Чтобы обновить его для выполнения операций пользовательского ввода CRUD, нужно ли вручную вставлять данные в DataTable или достаточно просто создать обычную команду SQL со свойствами адаптера DeleteCommand / InsertCommand / etc, а затем просто передать неизмененный DataTable как аргумент в методе Update?
т.е. это даст мне желаемый результат вставки новой строки в таблицу базы данных со значениями, которые пользователь только что ввел в DataGridView?
private void DGV_Nwind_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
string sql = "INSERT INTO [" + table.TableName + "] VALUES ("; //sql command base
//add values to command
for (int i = 0; i < e.Row.Cells.Count; i++)
{
sql += "'" + e.Row.Cells[i].ToString() + "'";
if (i < (e.Row.Cells.Count - 1))
{
sql += ", ";
}
else
{
sql += ")";
}
}
//update table
con.OleAdapter.InsertCommand = new OleDbCommand(sql);
con.OleAdapter.Update(table);
}