Foxtable(狐表)用户栏目专家坐堂 → 请教计划管理问题


  共有4868人关注过本帖树形打印复制链接

主题:请教计划管理问题

帅哥哟,离线,有人找我吗?
sxqq123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:300 积分:2307 威望:0 精华:0 注册:2012/11/14 11:25:00
请教计划管理问题  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/10 8:33:00 [只看该作者]

 Dim dr As DataRow = DataTables("日期管理").Find("日期=#" & dt & "#")
    If dr Is Nothing Then

按道理这里判断了存在就不继续添加了,是不会有重复的.

你这个代码和例子我也测试过很久了.不会有问题,实在不解为何到你手上会出现重复.

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/10 9:18:00 [只看该作者]

呵呵,是不是多人操作? 如果启动多个,就会有重复了。

如果多人操作,用sql语句检测和添加行比较合适。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/10 9:21:00 [只看该作者]

24小时才执行一次,并且执行前先同步表了,到底多少人在操作才能那么巧合呀- - 那你只能写个存储过程来完成了.

 回到顶部
帅哥哟,离线,有人找我吗?
sxqq123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:300 积分:2307 威望:0 精华:0 注册:2012/11/14 11:25:00
  发帖心情 Post By:2013/9/10 9:22:00 [只看该作者]

项目已发布是多人操作,请指导一下用sql语句检测和添加行代码如何写。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/10 9:29:00 [只看该作者]

select 查询出最大日期的哪一行,判断一下是否和当前日期一致,如果是一致则不增加,否则就增加一行为第一列赋值为当前日期 一样的做法.

你自己百度一下即可.

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:300 积分:2307 威望:0 精华:0 注册:2012/11/14 11:25:00
  发帖心情 Post By:2013/9/10 9:55:00 [只看该作者]

谢谢狐狸爸爸和BIN

 回到顶部