Foxtable(狐表)用户栏目专家坐堂 → [求助]网络环境下的复杂编号


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

主题:[求助]网络环境下的复杂编号

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


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
[求助]网络环境下的复杂编号  发帖心情 Post By:2019/4/9 12:44:00 [只看该作者]

远程外部数据库qpmdzhdb,表yxkhzb,字段“客户编号”,“建立日期”,“内容”三个列
很多用户同时使用新增行,同一人可能新增多行没点保存,在保存的时候校验“内容”列是否为空,如果不为空则写入远程外部数据库唯一编号,哪位老师帮我看看代码BeforeSaveDataRow事件
Dim dr As DataRow = e.DataRow
Dim pf As String
If dr.RowState <> DataRowState.Added Then '如果不是新增行
    Return '那么返回
ElseIf dr.IsNull("建立日期") Then '如果没有输入日期
    e.Cancel = True '取消保存此行
    MessageBox.Show("必须输入建立日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
Else
    pf = Format(dr("建立日期"),"yyMMdd") '否则获得编号的前缀,两位年,两位月
End If
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C '设置数据源名称
cmd2.C
cmd1.commandText = "Selec t Count(*) Fro m [yxkhzb] Where [客户编号] = '" & pf & "'"
If cmd1.ExecuteScalar = 0 Then '如果编号表不存在前缀的行,那么增加一行
    cmd1.commandtext = "Inser t Int o yxkhzb (客户编号) Values('" & pf & "',1)"
    cmd1.ExecuteNonQuery
End If
cmd1.commandText = "Selec t [顺序号] Fro m [编号] Wher e [前缀] = '" & pf & "'" 
Do
    Key = cmd1.ExecuteScalar() '从后台获得顺序号
    cmd2.commandText = "Upda te [编号] Se t [顺序号] = " & (Key + 1) & " Wher e [顺序号] = " & Key & " And [前缀] = '" & pf & "'"
    If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
        Exit Do '更新成功则退出循环
    End If
Loop
e.DataRow("客户编号") = "KH" & pf & Forma t(Key,"0000")

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/9 12:55:00 [只看该作者]

你现在需要这个?

 

【在保存的时候校验“内容”列是否为空,如果不为空则写入远程外部数据库唯一编号】

 

你需要判断内容列是不是为空?为空,就提示不保存?


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


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
  发帖心情 Post By:2019/4/9 13:36:00 [只看该作者]

是的老师,如果不为空,则生成编号并且保存,如果为空,不允许保存并返回
If e.DataRow.IsNull("内容") Then
    e.Cancel = True
    MessageBox.Show("内容不允许为空,请选择后保存","提示")
    Dim idx = Tables("yxkhzb").FindRow(e.DataRow)  
    Tables("yxkhzb").Select(idx,0)
End If

我这个不完成,是错误的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/9 15:56:00 [只看该作者]

代码我测试没问题,请做一个出错的实例发上来测试。

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


加好友 发短信
等级:童狐 帖子:257 积分:1649 威望:0 精华:0 注册:2017/4/14 15:58:00
  发帖心情 Post By:2019/4/9 17:15:00 [只看该作者]

老师,我表只有这三个列。


远程外部数据库qpmdzhdb,表yxkhzb,字段“客户编号”,“建立日期”,“内容”三个列


很多用户同时使用新增行,同一人可能新增多行没点保存,在保存的时候校验“内容”列是否为空,如果不为空则写入远程外部数据库唯一编号
哪位老师帮我看看代码BeforeSaveDataRow事件

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/9 19:09:00 [只看该作者]

请上传出错的实例测试。

 回到顶部