Foxtable(狐表)用户栏目专家坐堂 → SQLserver数据库生成不重复的id编号


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

主题:SQLserver数据库生成不重复的id编号

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
SQLserver数据库生成不重复的id编号  发帖心情 Post By:2020/12/1 13:24:00 [只看该作者]

老师我用的是SQL数据库在表的DataRowAdding中添加下面代码,如果多人在客户端编辑,能确保代码不重复生产吗?
e.DataRow("departid") = "d"&e.DataRow("_Identify")

但是我这边测试的有重复生成的情况?请问如何规避

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/1 13:46:00 [只看该作者]

上面这种方式无法排除重复。参考这种用法:http://www.foxtable.com/webhelp/topics/3008.htm

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/1 13:47:00 [只看该作者]

或者到DataRowAdded事件

e.DataRow.save
e.DataRow("departid") = "d" & e.DataRow("_Identify")

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/1 19:02:00 [只看该作者]

谢谢老师,
我用sql数据库
下面是生成目录树的逻辑,老师这个是不是必须加载数据后才能生成。但加载速度比较慢。能否不加载,直接生成
For Each dr As DataRow In dt.datarows
    If dr("departid") = r("departid") Then
        nd = tr.Nodes.Add(dr("departid"),dr("departname"))
        Functions.Execute("AddChildren",nd)
    End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/1 20:15:00 [只看该作者]

比如:http://www.foxtable.com/webhelp/topics/2900.htm

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/1 23:30:00 [只看该作者]

老师AddChildren函数修改后,这个函数生成的目录树部分不执行。没有从sql数据库调取生成目录树。如何修改?
Dim nd As WinForm.TreeNode = args(0)
Dim drs As List(of DataRow) = DataTables("department").SQLSelect("[parentid] = '" & nd.name & "'","order")
For Each dr As DataRow In drs
    Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("departid"),dr("departname"))
    Functions.Execute("AddChildren",cd)
Next

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/1 23:52:00 [只看该作者]

SQLSelect("[parentid] = '" & nd.name & "'",“”,"order")  去掉order可以执行
后面加上order就不执行。order是整数型。
这是为啥
[此贴子已经被作者于2020/12/2 0:05:32编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/2 8:28:00 [只看该作者]

语法:

SQLSelect(Filter,Top,Sort)

Filter: 查询条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异
Top:    可选参数,指定返回的行数
Sort:   可选参数,指定查询顺序,和Top配合使用。


示例四

如果需要按顺序返回所有行,可以将Top参数设置为"",例如按日期顺序,返回所有产品为PD01的订单:

Dim drs As List(of DataRow
drs = 
DataTables("订单").SQLSelect("产品 = 'PD02'","""日期 Desc")


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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/2 8:29:00 [只看该作者]

Dim drs As List(of DataRow) = DataTables("department").SQLSelect("[parentid] = '" & nd.name & "'",“”"order")
老师这个sqlselect修改后的预计,用order顺序输出查询就是不执行。把order换成日期也执行。这可找不到问题了

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/2 8:33:00 [只看该作者]

.SQLSelect("[parentid] = '" & nd.name & "'", "", "order")

 回到顶部
总数 18 1 2 下一页