DataRowState

本文介绍了RowState状态标志的概念及其在追踪表格数据变更方面的作用。详细解释了五个主要状态:Added(新增)、Deleted(删除)、Detached(脱离)、Modified(修改)和Unchanged(未更改)。这些状态有助于开发者了解数据集的状态变化。

 RowState状态标志跟踪对tabel的所有改变

 Added

 Deleted

 Detached

 Modified

 unChanged

private void bt_save_oh_Click(object sender, EventArgs e) { if (DialogResult.Yes == XtraMessageBox.Show("确认保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information)) { this.Cursor = Cursors.WaitCursor; DataTable dt = gridControl_amounttype.DataSource as DataTable; int changeRowCount = dt.GetChanges() != null ? dt.GetChanges().Rows.Count : 0; if (changeRowCount > 0) { DataTable dt1 = dt.Clone(); foreach (DataRow dr in dt.GetChanges().Rows) { if (dr.RowState == DataRowState.Deleted) { continue; } else { dt1.Rows.Add("Fab1", dr[1], dr[2], "T", Convert.IsDBNull(dr[4]) ? "F" : dr[4]); string type = dr[2].ToString().Trim(); byte[] type_byte = System.Text.Encoding.Default.GetBytes(type); string amouttype = BitConverter.ToString(type_byte).Replace("-", ""); string sql = @" UPDATE icost_oh_detail SET amounttype = utl_raw.cast_to_varchar2('" + amouttype + @"') WHERE cost_elem = '" + dr[1] + @"' "; DataTool.ExecuteSql(sql); } } int i = 0; i = DataTool.BulkMerge("icost_oh_amounttype", dt1, new string[] { "cost_elem" }); if (i > 0) { DataTool.ExecuteProcedure("icost_prc_oh_update"); DevExpress.XtraEditors.XtraMessageBox.Show("保存成功"); } else { DevExpress.XtraEditors.XtraMessageBox.Show("保存失败。请检查输入格式!"); } } else { DevExpress.XtraEditors.XtraMessageBox.Show("没有修改。无需保存!"); } this.Cursor = Cursors.Default; LoadData_Type(); iCost.initialFilter_OH(); iCost.SelectFilter_Load_OH(); iCost.tableAmount_OH(); } } 代码分析 DataTool.BulkMerge("icost_oh_amounttype", dt1, new string[] { "cost_elem" }); 的作用
09-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值