以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口中操作时后台表的唯一性问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76613)

--  作者:wangguiwang
--  发布时间:2015/11/2 12:41:00
--  窗口中操作时后台表的唯一性问题
各位老师:请教下在窗口中操作时后台表的唯一性问题,是这样的,我用下面这段代码是实现了当前显示的行可以禁止重复编号,如果行数多的话,肯定不能全部显示,要通过分页显示,我发现未显示出来的行就不能实现唯一性了。请指点下如何在后台的表中禁止重复,保证唯一性。谢谢

If e.DataCol.Name = "订单号" Then
    Dim
 dr As DataRow 
    dr = e.
DataTable.Find("订单号 = \'" & e.NewValue & "\'")
    
If dr IsNot Nothing Then
        MessageBox.Show(
"此订单号已经存在!")
        e.Cancel = 
True
    End
 If
End
 
If

--  作者:Hyphen
--  发布时间:2015/11/2 13:52:00
--  

使用SQLFind

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

 


--  作者:大红袍
--  发布时间:2015/11/2 14:15:00
--  

先find一下,没有,再用sqlfind,查到就提示。

 

If e.DataCol.Name = "订单号" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("订单号 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此订单号已经存在!")
        e.Cancel = True
    Else
        dr = e.DataTable.sqlFind("订单号 = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            MessageBox.Show("此订单号已经存在!")
            e.Cancel = True
        End If
    End If
End If


--  作者:wangguiwang
--  发布时间:2015/11/2 14:29:00
--  
非常感谢,已解决。