C# 删除数据集中的选定行
我在删除数据表中的选定行时遇到一些问题。我在这个网站上也参考了其他几个例子,但它们都会导致我所有的数据从数据库中被删除。关于如何删除从数据库文件中拉入的选定行,有什么建议吗C# 删除数据集中的选定行,c#,C#,我在删除数据表中的选定行时遇到一些问题。我在这个网站上也参考了其他几个例子,但它们都会导致我所有的数据从数据库中被删除。关于如何删除从数据库文件中拉入的选定行,有什么建议吗 private void btnDelete_Click(object sender, EventArgs e) { OleDbConnection connection = new OleDbConnection(); connection.ConnectionString = @
private void btnDelete_Click(object sender, EventArgs e)
{
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=S:\Docket\Database1.accdb;
Persist Security Info=False;";
string strSQL = "Select * from login";
OleDbCommand cmd = new OleDbCommand(strSQL, connection);
connection.Open();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
da.Update(dt);
}
编辑:显示从表中删除的项目的更新代码。我应该澄清一下,我想从datagrid和数据库中删除任何选择的选项,上面的代码只会从用户在屏幕上看到的内容中删除它们。我猜我的字符串选择了数据库中需要修改的所有内容,但我不确定要修改它说什么。您需要将foreach更改为:
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
您需要将foreach更改为:
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
您需要将foreach更改为:
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
您需要将foreach更改为:
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
您正在尝试删除登录表中的所有内容(您的查询选择所有行),还是仅删除选定行。您可以修改原始查询以选择所需的行,或者在删除之前检查数据。我怀疑这是否会运行<代码>dataGridView1。SelectedRows返回一个值。如果在
foreach
中循环它,则得到的是DataGridViewRow
而不是DataRow
。您可以将DataBoundItem
强制转换为DataRow
。此外,您想从表中删除行还是从数据库中删除行,第三个选项:从DataGridView
中删除行。你到底想做什么?我的目标是将它们完全从数据库中删除。更新的代码显示它们已从datagrid中删除,但未从数据库中删除。您是尝试删除登录表中的所有内容(您的查询选择所有行),还是仅删除选定的行。您可以修改原始查询以选择所需的行,或者在删除之前检查数据。我怀疑这是否会运行<代码>dataGridView1。SelectedRows返回一个值。如果在foreach
中循环它,则得到的是DataGridViewRow
而不是DataRow
。您可以将DataBoundItem
强制转换为DataRow
。此外,您想从表中删除行还是从数据库中删除行,第三个选项:从DataGridView
中删除行。你到底想做什么?我的目标是将它们完全从数据库中删除。更新的代码显示它们已从datagrid中删除,但未从数据库中删除。您是尝试删除登录表中的所有内容(您的查询选择所有行),还是仅删除选定的行。您可以修改原始查询以选择所需的行,或者在删除之前检查数据。我怀疑这是否会运行<代码>dataGridView1。SelectedRows返回一个值。如果在foreach
中循环它,则得到的是DataGridViewRow
而不是DataRow
。您可以将DataBoundItem
强制转换为DataRow
。此外,您想从表中删除行还是从数据库中删除行,第三个选项:从DataGridView
中删除行。你到底想做什么?我的目标是将它们完全从数据库中删除。更新的代码显示它们已从datagrid中删除,但未从数据库中删除。您是尝试删除登录表中的所有内容(您的查询选择所有行),还是仅删除选定的行。您可以修改原始查询以选择所需的行,或者在删除之前检查数据。我怀疑这是否会运行<代码>dataGridView1。SelectedRows返回一个值。如果在foreach
中循环它,则得到的是DataGridViewRow
而不是DataRow
。您可以将DataBoundItem
强制转换为DataRow
。此外,您想从表中删除行还是从数据库中删除行,第三个选项:从DataGridView
中删除行。你到底想做什么?我的目标是将它们完全从数据库中删除。更新后的代码显示它们已从datagrid中删除,但未从数据库中删除。我尝试使用(item.Index),但它不接受.Index,因此我假设我错误地编写了foreach语句。这个选项是否只是从datagrid而不是从数据库中删除所选项目?将DataRow
更改为DataGridViewRow
,您将得到我的加号。这不是从datagrid中删除该行吗?而不是从datatable中删除它们。@paul:似乎这就是OP真正想要做的:“…删除datatable中的选定行…”因此他不想删除,而是将其删除。:)我关注的是“如何删除从数据库文件中拉入的选定行”,并假设它是从数据库表中删除的。我尝试使用(item.Index)它不会接受.Index,所以我假设我写的foreach语句不正确。这个选项会不会从datagrid而不是数据库中删除所选的项?将DataRow
更改为DataGridViewRow
,您会得到我的加号。这不会只是从datagrid中删除该行,而不是删除它们从datatable中删除。@paul:看起来OP实际上想做的是:“…删除datatable中的选定行…”,所以他不想删除,而是删除它们。:)我专注于“如何删除从数据库文件中拉入的选定行”,并假设它是从数据库表中删除的。我尝试使用(item.Index)它不会接受.Index,所以我假设我写的foreach语句不正确。这个选项会不会从datagrid而不是数据库中删除所选的项?将DataRow
更改为DataGridViewRow
,您会得到我的加号。这不会只是从datagrid中删除该行,而不是删除它们从datatable中删除。@paul:看起来OP实际上想做的是:“…删除datatable中选定的行…”,所以他不想删除,而是删除它们。:)我重点讨论了“如何删除sel”