以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 请教计划管理问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40117)
|
-- 作者:sxqq123
-- 发布时间:2013/9/10 7:52:00
-- 请教计划管理问题
此主题相关图片如下:qq图片20130910074936.jpg
计划管理代码如下:
Static dt As Date Dim tp As TimeSpan tp = Date.Now - dt If tp.TotalHours >= 24 Then DataTables("日期管理").load dt = Date.Today Dim dr As DataRow = DataTables("日期管理").Find("日期=#" & dt & "#") If dr Is Nothing Then Dr=DataTables("日期管理").AddNew Dr("日期")= dt DataTables("日期管理").Save() End If End If 经常出现日期重复现象,请教如何改进代码?
|
-- 作者:Bin
-- 发布时间:2013/9/10 8:33:00
--
Dim dr As DataRow = DataTables("日期管理").Find("日期=#" & dt & "#") If dr Is Nothing Then
按道理这里判断了存在就不继续添加了,是不会有重复的.
你这个代码和例子我也测试过很久了.不会有问题,实在不解为何到你手上会出现重复.
|
-- 作者:狐狸爸爸
-- 发布时间:2013/9/10 9:18:00
--
呵呵,是不是多人操作? 如果启动多个,就会有重复了。
如果多人操作,用sql语句检测和添加行比较合适。
|
-- 作者:Bin
-- 发布时间:2013/9/10 9:21:00
--
24小时才执行一次,并且执行前先同步表了,到底多少人在操作才能那么巧合呀- - 那你只能写个存储过程来完成了.
|
-- 作者:sxqq123
-- 发布时间:2013/9/10 9:22:00
--
项目已发布是多人操作,请指导一下用sql语句检测和添加行代码如何写。
|
-- 作者:Bin
-- 发布时间:2013/9/10 9:29:00
--
select 查询出最大日期的哪一行,判断一下是否和当前日期一致,如果是一致则不增加,否则就增加一行为第一列赋值为当前日期 一样的做法.
你自己百度一下即可.
|
-- 作者:狐狸爸爸
-- 发布时间:2013/9/10 9:46:00
--
如bin所言,按道理是不会有重复的了。
要不跟踪一下吧,看看什么时间,什么人增加了行。
你增加时间和用户两列,时间列的日期时间格式设置为LongDateTime,将你的代码改一下:
Static dt As Date Dim tp As TimeSpan tp = Date.Now - dt If tp.TotalHours >= 24 Then
DataTables("日期管理").Loadfilter = "" DataTables("日期管理").load dt = Date.Today Dim dr As DataRow = DataTables("日期管理").Find("日期=#" & dt & "#") If dr Is Nothing Then Dr=DataTables("日期管理").AddNew Dr("日期")= dt dr("时间")= Date.now dr("用户") = User.Name DataTables("日期管理").Save() End If End If
[此贴子已经被作者于2013-9-10 9:59:50编辑过]
|
-- 作者:sxqq123
-- 发布时间:2013/9/10 9:55:00
--
谢谢狐狸爸爸和BIN
|