以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [讨论][狐爸请进]关于独占式编辑例子,是否没有考虑保存数据表后也要清楚编辑者列? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48078) |
-- 作者:737182811 -- 发布时间:2014/3/22 16:16:00 -- [讨论][狐爸请进]关于独占式编辑例子,是否没有考虑保存数据表后也要清楚编辑者列? 实际在开发过程中,发现在保存项目(菜单的save按钮)的时候,编辑者列的内容没有清楚,难道别人就一直不能编辑了?除非该用户退出系统? |
-- 作者:Bin -- 发布时间:2014/3/22 16:19:00 -- 你是不是漏了这个步骤 5、将表事件BeforSaveDatarow代码设置为: If e.DataRow.RowState = DataRowState.Added Then \'如果是新增行 |
-- 作者:737182811 -- 发布时间:2014/3/22 16:26:00 -- 没有漏啊。 |
-- 作者:Bin -- 发布时间:2014/3/22 16:29:00 -- 那就是未保存意外关闭程序了,或者是系统崩溃了,电脑突然关机了,才会卡住. 自己看2楼代码,保存时会清空的哦.
|
-- 作者:737182811 -- 发布时间:2014/3/22 16:33:00 -- 我也觉得奇怪呢,继续排查。试验了命令窗口用代码保存行,数据是保存了,但就是没有清除。 [此贴子已经被作者于2014-3-22 16:32:52编辑过]
|
-- 作者:Bin -- 发布时间:2014/3/22 16:36:00 -- 呵呵,不会的呢. 你看看是否有执行到这个事件,调试一下即可知道. |
-- 作者:lsy -- 发布时间:2014/3/22 16:41:00 -- 独占编辑,弄的不好,会造成频繁死锁。 在业务流程上,尽量让大家各干各的,虽然多人同时操作,但互不相干。 |
-- 作者:737182811 -- 发布时间:2014/3/22 16:42:00 -- 调试了一下,对于新增行,该代码是有效的,但是如果是别的行,就不会清除。 If e.DataRow.RowState = DataRowState.Added Then \'如果是新增行 e.DataRow("编辑者") = Nothing Else Dim cmd As New SQLCommand cmd.CommandText = "Update {任务追踪表} Set 编辑者 = Null Where [_Identify] = " & e.DataRow("_Identify") If cmd.ExecuteNonQuery = 1 Then e.DataRow("编辑者") = Nothing End If End If 就改了一下表名,其他都没动
|
-- 作者:737182811 -- 发布时间:2014/3/22 17:22:00 -- 晕死了,原来问题出在这里,看来代码不能随便copy后组合在一起啊 。把这段代码放到后面去就好了。 bin版有啥办法避免此类问题???? \'---网络环境下的复杂编号2-2-------------注意return语句 Dim dr As DataRow = e.DataRow Dim pf As String If dr.RowState <> DataRowState.Added Then \'如果不是新增行 Return \'那么返回 |
-- 作者:Bin -- 发布时间:2014/3/22 17:23:00 -- 放到后面去啊. |