将数据集更改提交到数据库

时间:2011-11-28 18:11:33

标签: c# winforms dataset

我正在使用连接到sql server的数据集,而我正在尝试的是一次删除多行,然后将更改保存到sql server。我已尝试使用以下代码:

DataRow[] rows = this.computechDataSet.VALHIS.Select("VAL_SRT = '" + this.computechDataSet.V_ALUTA.Rows[this.v_ALUTABindingSource.Position][0].ToString() + "'");
foreach (DataRow row in rows)
{
    row.Delete();
}
this.computechDataSet.VALHIS.AcceptChanges();
this.tableAdapterManager.UpdateAll(this.computechDataSet);

行会从数据集中删除(通过输出数据表行计数找到),但更改不会保存到我的SQL数据库中。我在其他表上添加/编辑/删除行没有任何问题,除非在那些情况下我一次执行一行的操作。

2 个答案:

答案 0 :(得分:2)

尝试不使用AcceptChanges

DataRow[] rows = this.computechDataSet.VALHIS.Select("VAL_SRT = '" + this.computechDataSet.V_ALUTA.Rows[this.v_ALUTABindingSource.Position][0].ToString() + "'");
foreach (DataRow row in rows)
{
    row.Delete();
}
this.tableAdapterManager.UpdateAll(this.computechDataSet);

答案 1 :(得分:0)

尝试不通过发出以下方法显式循环数据行。

this.computechDataSet.VALHIS.Select("VAL_SRT = '" + this.computechDataSet.V_ALUTA.Rows[this.v_ALUTABindingSource.Position][0].ToString() + "'").Delete();