以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 对用户编辑修改动作的记录跟踪 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3990) |
||||
-- 作者:reachtone -- 发布时间:2009/8/22 11:41:00 -- 对用户编辑修改动作的记录跟踪 为了实现对每人编辑修改记录的跟踪功能,我在datacolchanged事件中设置了以下事件。 Dim dr As DataRow = e.DataRow If dr.RowState <> DataRowState.Added \'如果不是新增加的行 dr("操作记录") = dr("操作记录") & Chr(13) & Chr(10) & date.Now & " 【" & User.Name & "】将 〖" & e.DataCol.Name & "〗中的 <" & dr(e.DataCol.Name) & "> 修改成了 <" & e.NewValue & ">" End If 我本来的想法是,只要在表中修改了数据,或者通过查找替换等方式修改了数据,都在“操作记录”中记录相关内容。但郁闷的是,现在只要在表中修改数据,项目就会崩溃。看这个例子,只有几行数据而已。
[此贴子已经被作者于2009-8-22 12:55:31编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/8/22 12:28:00 -- 这是正常的,正确应该是: \'跟踪每个人的编辑修改记录 Dim dr As DataRow = e.DataRow if e.DataCol.Name <> "操作记录" Then If dr.RowState <> DataRowState.Added \'如果不是新增加的行 dr("操作记录") = dr("操作记录") & Chr(13) & Chr(10) & date.Now & " 【" & User.Name & "】将 〖" & e.DataCol.Name & "〗中的 <" & dr(e.DataCol.Name) & "> 修改成了 <" & e.NewValue & ">" End If End If |
||||
-- 作者:reachtone -- 发布时间:2009/8/22 12:40:00 -- 以下是引用czy在2009-8-22 12:28:00的发言:
这是正常的,正确应该是: \'跟踪每个人的编辑修改记录 Dim dr As DataRow = e.DataRow if e.DataCol.Name <> "操作记录" Then If dr.RowState <> DataRowState.Added \'如果不是新增加的行 dr("操作记录") = dr("操作记录") & Chr(13) & Chr(10) & date.Now & " 【" & User.Name & "】将 〖" & e.DataCol.Name & "〗中的 <" & dr(e.DataCol.Name) & "> 修改成了 <" & e.NewValue & ">" End If End If 哈哈,厉害,C版就是高手! |
||||
-- 作者:czy -- 发布时间:2009/8/22 12:43:00 -- 以下是引用reachtone在2009-8-22 12:40:00的发言:
|
||||
-- 作者:reachtone -- 发布时间:2009/8/22 12:45:00 -- 以下是引用czy在2009-8-22 12:43:00的发言:
OK,已经搞定。 |
||||
-- 作者:mr725 -- 发布时间:2009/8/22 14:44:00 -- 对楼主和c版的代码增加加一个 if.....end if 。 不然("操作记录") 列中每行因为【& Chr(13) & Chr(10) &】都有个‘小空行’(当然,就希望如此的话,就别加了~ 呵呵 ) |
||||
-- 作者:mr725 -- 发布时间:2009/8/22 14:59:00 -- 以下是引用czy在2009-8-22 12:43:00的发言:
请教 : 下面代码(原想放在datacolchanged里,但项目崩溃了)应该放在那个事件中,或代码要怎么改? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/8/22 15:05:00 -- DataColChanging事件: If e.DataCol.Name = "字母列" Then e.NewValue = e.NewValue.ToUpper() End If |
||||
-- 作者:mr725 -- 发布时间:2009/8/22 15:09:00 -- 以下是引用狐狸爸爸在2009-8-22 15:05:00的发言:
DataColChanging事件: If e.DataCol.Name = "字母列" Then e.NewValue = e.NewValue.ToUpper() End If ok! 谢谢啊~ |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/8/22 15:34:00 -- 哈哈,看来六条尾巴也不管用,你还得加油啊。 从你这个代码可以看出,你还是没有掌握好DataTable和Table的差别。 |