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


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

主题: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")

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

 回到顶部
帅哥哟,离线,有人找我吗?
weibu
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
weibu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
weibu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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换成日期也执行。这可找不到问题了

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/2 11:44:00 [显示全部帖子]

老师我发现在sqlselect中加顺序,生成速度明显变慢。下面代码目录树生成按order进行顺序生成,能写代码吗?
Dim drs2 As List(of DataRow) = DataTables("minfor").SQLSelect(filter2)
Dim nd2 As WinForm.TreeNode
tv.StopRedraw()
tv.Nodes.Clear
For Each dr2 As DataRow In drs2
nd2 = tv.Nodes.Add(dr2("mid"),dr2("mname"))
Next
tv.ResumeRedraw()
tv.ExpandAll()

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/2 23:07:00 [显示全部帖子]

老师,我在按钮的click事件中加下列代码生成id,多客户端同时编辑,SQL数据库。能确保id不重复,是唯一的吗?
           

For Each dr1 As DataRow In DataTables("mframe").Select("[jid] = '" & t & "'and [lage] = '" & p & "'","orderno")
                 Dim dr2 As DataRow = DataTables("mframe").AddNew()
                  dr2.save
                 dr2("mitemid") = "g"&dr2("_Identify")

老师这个执行速度挺慢,有啥优化方法没?
[此贴子已经被作者于2020/12/2 23:15:52编辑过]

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/3 9:46:00 [显示全部帖子]

谢谢老师,这个方法我想过。但重新加载速度也慢。关键我同一个事件中,下面的代码会马上用到id。

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5357 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/12/3 10:00:00 [显示全部帖子]

蓝老师,那我在按钮的click事件中加下列代码生成id,多客户端同时新增时,SQL数据库。能确保id不重复,是唯一的吗?         
For Each dr1 As DataRow In DataTables("mframe").Select("[jid] = '" & t & "'and [lage] = '" & p & "'","orderno")
                 Dim dr2 As DataRow = DataTables("mframe").AddNew()
                  dr2.save
                 dr2("mitemid") = "g"&dr2("_Identify")
next
逻辑慢慢考虑,这个笨方法没问题吧?

 回到顶部