我需要在運行時將rowstate屬性設置爲刪除,需要將rowstate修改爲已刪除。如何在運行時將rowstate屬性設置爲Deleted?
因爲我知道row.Delete()方法調用將行狀態更改爲已刪除,但它也刪除行。
在這裏,我只是想改變的RowState來刪除,但數據行不應該被刪除:
示例代碼:
Delete delete = new Delete()
.from("tb_lib_report_package_link")
.where()
.add().criteria("lib_report_id = :pLibReportId ")
.and().criteria("package_Id IN (" + packageLink + ")")
.endWhere();
drow.AcceptChanges();
drow.Delete();
DataRow[] dra = new DataRow[] { drow };
DbAccessManager accessManager = DbAccessFactory.GetDatabaseAccess(DatabaseType.Oracle, "Data Source=SRV",
"DEV", "dev", this.AppCookieData["UserId"]);
accessManager.ClientId = this.AppCookieData["UserId"];
DbConnection cn = accessManager.CreateConnection();
delete.ParameterSetter = new ParameterSetter((builder, param, index) =>
{
switch (builder.GetColumnName(param))
{
case "pLibReportId":
param.DbType = this.ServerCfgReader.DefaultDBProvider.DBDataAccess.GetDbType(drow["LIB_REPORT_ID"].GetType());
param.Value = drow["LIB_REPORT_ID"];
break;
default:
throw new NotImplementedException();
}
});
accessManager.Delete(delete, dra, cn);
在這我得到異常「已刪除行的信息無法通過訪問該行「。
會是什麼這樣做的好處是什麼?你想在這裏做什麼?也顯示你目前的一些代碼。 – 2014-10-29 13:28:38
請參閱此處我只是想將rowstate修改爲在運行時刪除。目前我有一個DataRow哪個rowstate被修改,並基於修改後的rowstate我需要在我的框架中調用Delete方法,但框架只處理Delete函數中的Deleted Row狀態。 – Jack 2014-10-29 13:31:00
如果你不調用AcceptChanges它仍然在數據表中,並且如果你在變量中有一個對它的引用,那麼你仍然可以通過它來訪問它的行狀態,這是什麼意思。 – 2014-10-29 13:34:54