在SQL Server 2000数据库的表UserInfo中,原有6条记录为,编号分别为1,2,3,4,5,6,当我使用VB的rs.Delete删除其中记录后,比如1,4和5,再用VB的rs.AddNew向数据库添加新的记录,比如7,8,9,新添加的记录没有按照顺序添加在原记录最后一条6之后,而是插入到以前删除的1,4,5记录的位置,即添加后的表的内容变为7,2,3,8,9,6,而不是2,3,6,7,8,9.
请问:这是什么原因造成的?是数据库的设置出错,还是VB编程内的错误。以下附上部分代码,也许对您有帮助。谢谢!这是显示数据部分的代码:
Private Sub ShowGridData()
  Dim cn As ADODB.Connection
  Dim rs As ADODB.Recordset
  
  Set cn = New ADODB.Connection
  cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;" & _
                      "User ID=sa;PWD=870910;Initial Catalog=UserElec;Data Source=JUSTINKING"  Set rs = New ADODB.Recordset
    rs.Open "select * from UserInfo", cn, adOpenForwardOnly, adLockOptimistic
  
  Set MSHFlexGrid1.DataSource = rs
    
  rs.Close
  Set rs = Nothing
  
  With MSHFlexGrid1
    .ColWidth(0) = 0
    .Refresh
  End With
End Sub这是删除部分的代码:
Private Sub cmdDel_Click()
  Dim cn As ADODB.Connection
  Dim rs As ADODB.Recordset
  Dim n As Integer
  
  Set cn = New ADODB.Connection
   cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;" & _
                      "User ID=sa;PWD=870910;Initial Catalog=UserElec;Data Source=JUSTINKING"
  
  Set rs = New ADODB.Recordset
    rs.Open "select * from UserInfo where UserNo='" & txtNo.Text & "'", cn, adOpenForwardOnly, adLockOptimistic
    
    n = MsgBox("是否确定要删除该用户?", vbOKCancel + vbExclamation, "警告")
    If n = 1 Then
      
      rs.Delete
      
      MsgBox " 删除成功!", vbOKOnly + vbInformation, "提示"
    End If
    
  txtNo.Text = ""
  txtName.Text = ""
  
  rs.Close
  cn.Close
  Set rs = Nothing
  Set cn = Nothing
  MSHFlexGrid1.Refresh
  Call ShowGridData   ‘显示数据
End Sub