以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  自动编号的问题(关于_Indentify)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154520)

--  作者:昱飞哥
--  发布时间:2020/9/17 8:58:00
--  自动编号的问题(关于_Indentify)
我希望客户信息表每增加一行,新增加的那行里的“客户编号”自动填入当前行的“_Indentify”的值,于是我在“客户信息表”的dataRowAdded事件写代码:
Dim dr As DataRow = e.DataRow
dr("客户编号") = dr("_Identify")

因为“客户编号”是不能重复的,所以,又在DataColChanging事件写代码:
If e.DataCol.Name = "客户编号" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("客户编号 = \'" & e.NewValue & "\' And [_Identify] <> " & e.DataRow("_Identify") ) \'如果在"客户编号"列能找到与新输入的值一样的值
    If dr IsNot Nothing Then
        MessageBox.Show("此客户编号已经存在,不可新增!")
        e.Cancel = True
    End If
End If

但是有个问题,本身("_Identify")应该是独一无二,不会重复的,也就是说上面这段DataColChanging事件代码应该可以不用写才对,然而,实际情况是,有时候新增一行,却会提示("此客户编号已经存在,不可新增!"),这是什么情况?

--  作者:有点蓝
--  发布时间:2020/9/17 9:34:00
--  
dataRowAdded事件写代码:
Dim dr As DataRow = e.DataRow
dr.save ‘没有保存之前_Identify都是假的值
dr("客户编号") = dr("_Identify")

--  作者:昱飞哥
--  发布时间:2020/9/17 19:06:00
--  
谢谢老师,终于明白了