我在SQL数据库中
在VB中用DATAGRID绑定到记录集
在用ADDNEW....UPDATE增加时,输入重复记录,报错记录重复。
此时在DATAGRID中已增加了这一条重复记录。
由于重复了,所以改了主键字段值再存(ADDNEW...UPDATE)
时出错。此时退出整个程序了。
请问有什么办法在数据库判断重复之后,不退出程序下可以再存。

解决方案 »

  1.   

    一般主键设计成自增长的在DataGrid上不上用户编辑
    这样增加一条记录,它自已就生成序号了,用户都不用管而且根本不会出现重复记录
      

  2.   

    用事务处理不行。
    "spread"是什么?
      

  3.   

    Public Function ChkSame(ByVal adoRs As ADODB.Recordset, byval strFld As String ) As Boolean
           ChkSame = False
           Dim clors As New ADODB.Recordset
           If adoRs.RecordCount > 0 Then
              adoRs.MoveFirst
              Do While Not adoRs.EOF
                 Set clors = adoRs.Clone
                 clors.Filter = "序號<>" & adoRs.Fields("序號").Value
                 If clors.RecordCount <= 0 Then Exit Function
                    clors.MoveFirst
                    clors.Find strFld & "='" & adoRs.Fields(strfld).Value & "'"
                    If Not clors.EOF Then
                      ChkSame = True
                      Exit Function
                   End If
                   Set clors = Nothing
                   adoRs.MoveNext
              Loop
           End If
    End Function
    序號為自動增加的欄位