在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
请问:这是什么原因造成的?是数据库的设置出错,还是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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货