当前位置:编程学习 > C#/ASP.NET >>

Adapter 困惑

使用Adapter.fill(dataset)
然后DataAdapter.Update(DataSet) 
最后使用DataSet.AcceptChanges() 
这种方法可以刷新记录集,来删除,修改等。但我的表记录需要做历史记录的话怎么办,他只是把记录删除了,修改了。
是不是要循环gridview 记录集,然后使用SqlExecNonQuery --------------------编程问答-------------------- 如果你的表需要作历史记录的话,只能把所有修改的行,做为新增行,把删除的行,用一个字段做删除标记 --------------------编程问答-------------------- Adapter顾名思义,就是“适配器”。 --------------------编程问答-------------------- 如果你的表需要作历史记录的话,只能把所有修改的行,做为新增行,把删除的行,用一个字段做删除标记,怎么做???
--------------------编程问答-------------------- 如果不想真删除数据
数据库在设计时 可以设计成假删

在表内添加一标记字段 flag :0 未删除  1:已删除

读取数据时: select * from tb where flag =0

读取历史记录:select * from tb where flag =1
--------------------编程问答-------------------- 补充一句:只能把所有修改的行,做为新增行,原行也需要在一个字段中做删除标记

至于实现方法,可以修改Adapter中Update,Delete等Command的SQL语句,并要求返回值与真实的Update和Delete一致(Update需要返回一个Select语句,一并实现)

也可以使用ExecuteNonQuery --------------------编程问答-------------------- 5楼正解 --------------------编程问答-------------------- 能写个差不多的例子语句不?本人菜鸟 --------------------编程问答--------------------
引用 4 楼 q107770540 的回复:
如果不想真删除数据
数据库在设计时 可以设计成假删

在表内添加一标记字段 flag :0 未删除 1:已删除

读取数据时: select * from tb where flag =0

读取历史记录:select * from tb where flag =1


这个不错。。 --------------------编程问答-------------------- 逻辑删除 --------------------编程问答--------------------
引用 4 楼 q107770540 的回复:
如果不想真删除数据
数据库在设计时 可以设计成假删

在表内添加一标记字段 flag :0 未删除  1:已删除

读取数据时: select * from tb where flag =0

读取历史记录:select * from tb where flag =1

UP~
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,