ADODB.Recordset 记录删除问题

czwwh 2002-07-31 08:22:25
我用ADO控件绑定一个数据库,删除其中一个记录后,数据库中这条记录确实删除了,但在ADODB.Recordset 记录集中并没有删除,用Refresh方法也没用,这是为什么?
基本代码如下:

Private Sub Form_Load()
adoMain.ConnectionString = cnHhsoft
adoMain.RecordSource = "select * from Notify_Main order by cNCode"
adoMain.Refresh
End Sub

'删除按钮
Private Sub cmdDel_Click()
Dim IntR As Integer
Dim strTemp As String
Dim cmSearch As ADODB.Command
IntR = MsgBox("确实要删除【" & strNCode & "】这张单据吗?", 36, "提醒!")
If IntR = vbYes Then
strTemp = "delete from Notify_Main where cNCode ='" & strNCode & "'"
cmSearch.CommandText = strTemp
cmSearch.Execute
adoMain.Refresh
End If
End Sub

我看了数据库中的Notify_Main 表,这条记录确实删除了,但我在程序中用向前、向后的按钮浏览记录时,这条记录还在。但是在增加记录的情况下却不存在这种情况,这是什么原因?望高手指点
...全文
300 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigtea 2002-07-31
  • 打赏
  • 举报
回复
能把代码列出来吗,这种情况常有,有各种不同的原因。
另:楼上的前一问题,加一句:adomain.recordset=cmSearch.execute更好一些。其实Requery相当于又重新查询了一遍。
czwwh 2002-07-31
  • 打赏
  • 举报
回复
还是楼上这位兄弟高!实际是这样:adoMain.Recordset.Requery
不过我又有新的问题出现:我添加一条记录,用 adoMain.Recordset.AddNew
保存时用adoMain.Recordset.Update或adoMain.Recordset.UpdateBatch都出现错误,提示如下:
实时错误:'-2147217888 (80040e20)':
客户事件句柄调用了一个提供者中的非重入方法。

我不懂这是什么意思,我以前都是用这种方法的,都没错
micorosoft 2002-07-31
  • 打赏
  • 举报
回复
Private Sub cmdDel_Click()
Dim IntR As Integer
Dim strTemp As String
Dim cmSearch As ADODB.Command '声明变量,没有创建对像
IntR = MsgBox("确实要删除【" & strNCode & "】这张单据吗?", 36, "提醒!")
If IntR = vbYes Then
strTemp = "delete from Notify_Main where cNCode ='" & strNCode & "'"
cmSearch.CommandText = strTemp cmSearch.Execute
adoMain.Requery '把这改成用Requery就可以了
End If
End Sub

griefforyou 2002-07-31
  • 打赏
  • 举报
回复
'删除按钮
Private Sub cmdDel_Click()
Dim IntR As Integer
Dim strTemp As String
Dim cmSearch As ADODB.Command '声明变量,没有创建对像
IntR = MsgBox("确实要删除【" & strNCode & "】这张单据吗?", 36, "提醒!")
If IntR = vbYes Then
strTemp = "delete from Notify_Main where cNCode ='" & strNCode & "'"
cmSearch.CommandText = strTemp '对像未创建,怎么执行
cmSearch.Execute '对像未创建,怎么执行
adoMain.Refresh
End If
End Sub
  • 打赏
  • 举报
回复
adoMain.CursorType=adOpenDynamic
fuxc 2002-07-31
  • 打赏
  • 举报
回复
strTemp = "delete from Notify_Main where cNCode ='" & strNCode & "'"
你确实是直接删的数据库阿!

recordset.delete可以删创记录

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧