以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于ID列变化的疑惑  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89848)

--  作者:zhy400137
--  发布时间:2016/8/31 9:52:00
--  关于ID列变化的疑惑
BeforeSaveDataRow:

Dim dr As DataRow = e.DataRow
If dr.Isnull("部门ID") OrElse dr.Isnull("期间") OrElse dr.Isnull("费用金额") Then
    e.Cancel=True
    MessageBox.show("至少要填入部门ID,期间和费用金额!","提示")
Else
    If dr.RowState=DataRowState.Added Or dr.Rowstate = DataRowState.Modified Then
        Dim dr1 As DataRow = DataTables("修改日志").AddNew
        dr1("预算填写ID") = dr("ID")
        dr1("用户ID") = _UserName
        dr1("用户名称") = _UserXm
        dr1("修改时间") = Date.Now
        dr1("表名")= "预算填写"
        dr1("列名") = "费用金额"
        dr1("原数值")=  dr.OriginalValue("费用金额")
        dr1("现数值") =dr("费用金额")
        dr1.save
    End If
End If
以上代码想完成一个创建修改日志的功能,其他都OK,但ID列有个疑惑,FOXTABLE里的ID列在保存前和保存后的值会变化,
如何保证存到日志里的是保存后的值呢?特别是第一条时,保存前ID是0,日志里的ID也直接存成0了 。
谢谢!


--  作者:zhy400137
--  发布时间:2016/8/31 10:01:00
--  
ID是自增列!
--  作者:有点蓝
--  发布时间:2016/8/31 10:11:00
--  
保存日志的代码放到DataRowAdded事件
--  作者:zhy400137
--  发布时间:2016/8/31 10:21:00
--  
一样的,保存后还是变化前的值
--  作者:zhy400137
--  发布时间:2016/8/31 10:35:00
--  
再顶一下!
--  作者:zhy400137
--  发布时间:2016/8/31 10:36:00
--  
我不能一开始就进行保存,因为另外几个字段是必填项!
--  作者:zhy400137
--  发布时间:2016/8/31 10:52:00
--  
 一个预算表,一个日志表

两表通过预算表的ID和日志表的预算填写ID进行关联
但我并没做关联表
现就想在预算填写有修改时,将预算表中的ID写入到日志表里的预算填写ID里
但预算表中的ID保存前后有变化 

--  作者:有点蓝
--  发布时间:2016/8/31 10:57:00
--  
1、用自定义编号代替自增列
2、做保存按钮,保存后再增加日志

--  作者:zhy400137
--  发布时间:2016/8/31 11:01:00
--  
保存后,如何增加日志?
那只能填一行保存一行,不能保存整表?

--  作者:有点蓝
--  发布时间:2016/8/31 11:13:00
--  
这个没有办法,不然就用自定义编号