Foxtable(狐表)用户栏目专家坐堂 → [求助]新增加行未使用状态


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

主题:[求助]新增加行未使用状态

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/20 17:50:00 [显示全部帖子]

Dim dr As DataRow = e.DataRow
Dim pf As String = "CS" '设置入库单编号前缀
Dim Key1,key2 As Integer
Dim nm As String = e.DataTable.name
cmd1.commandText = "Select Count(*) F rom {编号回收表}  Where [前缀] = '" & pf & "' And Tablename= '" & nm & "' and 已用标识 = 0"
If cmd1.ExecuteScalar = 0 Then '如果编号表不存在前缀的行,那么增加一行
    e.DataRow("第一列") = Functions.Execute("getnumber","表B","第一列","2")
Else
    cmd1.CommandText = "Select top 1 * F r om {编号回收表} Where Tablename= '" & nm & "' and 前缀 = '" & pf & "' and 已用标识 = 0 Or 已用标识 Is Null order by 顺序编号"
    Dim dt As DataTable = cmd1.ExecuteReader
    Dim mydr As DataRow = dt.DataRows(0)
    key1 = mydr("顺序编号")

    cmd1.commandText = "Update {编号回收表} S et [已用标识] = 1 Where [顺序编号] = " & Key1 & " And [前缀] = '" & pf & "' And Tablename= '" & nm & "'"
    cmd1.ExecuteNonQuery()
    cmd1.CommandText = "DELETE F R OM {编号回收表} Where Tablename= '" & nm & "' and 前缀 = '" & pf & "' and 顺序编号 = " & key1 & "And 已用标识 = 1"
    cmd1.ExecuteNonQuery()
    dr("第一列")=key1'这块合成是通过查到的结果合成
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 15:47:00 [显示全部帖子]

If dt2>=Date.Today Then

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 15:57:00 [显示全部帖子]

以下是引用blsu33在2016/1/21 15:54:00的发言:
好了 已经达到预计效果了 红袍老师能否给看看代码 是否合理 5楼说了好多  不知我做的是否 还有纰漏
[此贴子已经被作者于2016/1/21 15:54:09编辑过]

 

这样做可以。能用就好。

 

不过,回收编号表没必要这样做,直接一列名称,一列编号即可。当然,记录信息越多当然越好。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 16:02:00 [显示全部帖子]

表结构不变。只需要编写服务器端就好。客户端请求编号,服务器端,从回收表里面取出编号发回去即可。

 

客户端就一句代码即可。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 16:12:00 [显示全部帖子]

 你在数据库那里,把此列设置一个唯一约束才行,否则,代码判断的话也可能重复!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 16:13:00 [显示全部帖子]

OpenQQ的,参考这里。

 

http://www.foxtable.com/help/topics/3008.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 16:49:00 [显示全部帖子]

以下是引用blsu33在2016/1/21 16:48:00的发言:
红袍老师,
  设为唯一键在加上判断是否重复,就不会出现重复了 是吧?

 

是的,那就肯定不会重复了。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 21:24:00 [显示全部帖子]

唯一约束,可以保证你保存的时候,此列的是唯一的。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 22:00:00 [显示全部帖子]

没有白判断,你这里判读的话,是必要的。

 

而设置唯一约束的,是为了保证最后保存的时候不重复的最后一道防线。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/22 9:59:00 [显示全部帖子]

1、BeforeSaveDataRow没必要用For Each啊,每一行保存的时候都会触发一次BeforeSaveDataRow事件的。

 

2、保存前肯定要判断,如果不判断,重复的话,就会报错了。


 回到顶部
总数 28 上一页 1 2 3 下一页