两个表比较确定是修改,删除还是添加

luyesql 2010-10-21 04:16:59
从数据库取出来的记录放在一个datatable里面。
假如数据只有一列是
xsbh
2
5
6
从数据库绑定在界面上之后,可能添加,修改,删除记录,把这新的记录放在一个新的datatable里面
新的datatable可能是
xsbh
2
5
也可能是
xsbh
2
5
6
7
也可能是
xsbh
2
5
7
那我如何确定哪些记录是删除的,哪些记录是修改,哪些记录是添加的。
...全文
165 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
六子 2010-10-22
  • 打赏
  • 举报
回复
加一列叫del int default(0)
建一张表叫[add_history]
删除时Update那一行为1,
insert时同时把该数据的id插入到[add_history]中
查删除数据:select * from [yourtable] where del=1
查新增数据:select * from [add_history]
OK?
cys1016116747 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]
System.Data.DataTable dt = new System.Data.DataTable();
dt .GetChanges();
dt.Select(null, null, System.Data.DataViewRowState.Added);//获取新增行
dt.Select(null, null, System.Data.DataViewRowState.Delete……
[/Quote]
对设置它的行状态
HooverHuang 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 luyesql 的回复:]
从数据库取出来的记录放在一个datatable里面。
假如数据只有一列是
xsbh
2
5
6
从数据库绑定在界面上之后,可能添加,修改,删除记录,把这新的记录放在一个新的datatable里面
新的datatable可能是
xsbh
2
5
也可能是
xsbh
2
5
6
7
也可能是
xsbh
2
5
7
那我如何确定哪……
[/Quote]

加标示字段,在执行数据库操作的时候,加个方法标示参数。


hl362496158 2010-10-21
  • 打赏
  • 举报
回复
不能弄个东西记录下状态么?比如说添加一个状态列。
海边的狼 2010-10-21
  • 打赏
  • 举报
回复
状态不需要记录
海边的狼 2010-10-21
  • 打赏
  • 举报
回复
查看行的RowState,即可判断

附:
[Flags]
public enum DataRowState
{
// Summary:
// The row has been created but is not part of any System.Data.DataRowCollection.
// A System.Data.DataRow is in this state immediately after it has been created
// and before it is added to a collection, or if it has been removed from a
// collection.
Detached = 1,
//
// Summary:
// The row has not changed since System.Data.DataRow.AcceptChanges() was last
// called.
Unchanged = 2,
//
// Summary:
// The row has been added to a System.Data.DataRowCollection, and System.Data.DataRow.AcceptChanges()
// has not been called.
Added = 4,
//
// Summary:
// The row was deleted using the System.Data.DataRow.Delete() method of the
// System.Data.DataRow.
Deleted = 8,
//
// Summary:
// The row has been modified and System.Data.DataRow.AcceptChanges() has not
// been called.
Modified = 16,
}
wuyq11 2010-10-21
  • 打赏
  • 举报
回复
System.Data.DataTable dt = new System.Data.DataTable();
dt .GetChanges();
dt.Select(null, null, System.Data.DataViewRowState.Added);//获取新增行
dt.Select(null, null, System.Data.DataViewRowState.Deleted);//获取删除行
luyesql 2010-10-21
  • 打赏
  • 举报
回复
关键是怎么记录他的状态
shaoliang520xi 2010-10-21
  • 打赏
  • 举报
回复
给databale里多加一列,记录下状态就OK了
wuhongxa 2010-10-21
  • 打赏
  • 举报
回复
好问题!。。正想了解下 顶楼主
MaoJunHang 2010-10-21
  • 打赏
  • 举报
回复
标示列 主键ID
szhda4le 2010-10-21
  • 打赏
  • 举报
回复
临时表 多加个状态 status 1是修改 2是删除 3添加

为什么不直接操作数据库 然后加个操作记录呢


hahanan1987 2010-10-21
  • 打赏
  • 举报
回复
加个标志字段

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧