我想在用户选择行然后单击“删除”按钮时从datagridview中删除一行 . 我使用以下代码:
private void btnDel_Click(object sender, EventArgs e)
{
dgvSearchResults.ReadOnly = false;
if (MessageBox.Show("Are you sure?", "confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes) {
dgvSearchResults.Rows.RemoveAt(dgvSearchResults.SelectedRows[0].Index);
ole_da.Update(dTable);
}
}
调试时我收到以下错误:
{“在传递带有已删除行的DataRow集合时,更新需要有效的DeleteCommand . ”}
我是C#的新手,不知道如何创建DeleteCommand或使用CommandBuilder(如某些SO帖子中所建议的)来解决这个问题 .
2 回答
在您的点击事件中这样做:
感谢@ Orkun-Bekar,以下最终解决了这个问题:
其中,ole_da被赋予一个select命令,用于从所讨论的表中选择所有项目 . 然后给它一个连接,即conn . 然后使用OleDbCommandBuilder类将自动删除所选行,而无需指定显式的DeleteCommand .