我正在使用连接到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数据库中。我在其他表上添加/编辑/删除行没有任何问题,除非在那些情况下我一次执行一行的操作。
答案 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();