在VB中如何用SQL语句删除数据库中的记录?

fwjyz 2003-08-31 10:23:15
①问题1
我用rs.delete删除当前记录,在datagrid中显示已经删除,但数据库中数据没有删除,错误在那里?
public CN As New ADODB.Connection
public Rs As New ADODB.Recordset
Const ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\jsc.mdb;Persist Security Info=False"
Private Sub Command1_Click()
CN.Open ConnectionString
Rs.CursorLocation = adUseClient
Rs.Open "select * from sheet", CN, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = Rs
End Sub
Private Sub Command3_Click()
Rs.Delete
End Sub
②如何在VB中定义游标?以及利用游标取值?
...全文
186 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lirun 2004-02-25
  • 打赏
  • 举报
回复
dim SqlString as string
sqlString="delete * from sheet"
cnn.execute SqlString
Ranma_True 2004-02-25
  • 打赏
  • 举报
回复
Rs.Delete后
RS.Update
taosihai1only 2004-02-25
  • 打赏
  • 举报
回复
Private Sub Command3_Click()
Rs.Delete
RS.Update
End Sub
of123 2004-02-25
  • 打赏
  • 举报
回复
因为你设置记录集为批锁定,所以必须用 rs.UpdateBatch 来更新你所做的所有更改:

rs.Delete
......
rs.UpdateBatch

当然,你也可以取消上一次 UpdateBatch 之后的所有更改:

rs.CancelBatch

如果你希望每次添加、更改、删除后立即提交,就用 myarts(xiaobao)的方法。但是你同时也就放弃了取消的权利。
hzybc 2004-02-25
  • 打赏
  • 举报
回复
Private Sub Command3_Click()
Rs.Delete
RS.Update
End Sub

myarts 2004-02-25
  • 打赏
  • 举报
回复
Rs.Open "select * from sheet", CN, adOpenDynamic, adLockBatchOptimistic
改成
rs.Open "select * from sheet", conn, adOpenStatic, adLockOptimistic
kennyn 2004-02-25
  • 打赏
  • 举报
回复
str="delete from [表名] where [字段名]='" &要删除的条件 &"'"
cnn.execute str
msdn_vipuser 2004-02-24
  • 打赏
  • 举报
回复
rs.delete
cloudtarget 2004-02-07
  • 打赏
  • 举报
回复
Rs.Delete
 if Rs.eof and Rs.bof then exit sub
 if Rs.eof then Rs.MoveLase
 Rs.MoveNext
LCAAA 2003-08-31
  • 打赏
  • 举报
回复
删除后刷新一下就可以。
xkcm 2003-08-31
  • 打赏
  • 举报
回复
你在使用RS.Delete 后要使记录级移动才能修改成功,在RS.delete后加一句rs.movenext
关于你的第二个问题,在你定义RS时就定义了游标,当你OPEN时就打开了它。
bigbigbigsoft 2003-08-31
  • 打赏
  • 举报
回复
用Command,使得command 字串为:
DELETE FROM SHEET WHERE RECORD_ID = "ASDFASDFASFASFASFASF"
然后execute command就可以了
fwjyz 2003-08-31
  • 打赏
  • 举报
回复
我用了up 的方法,还是不能删除。
WorldBoy 2003-08-31
  • 打赏
  • 举报
回复
不好意思其中写错了一个单词,应该是:
if Rs.eof then Rs.MoveLast
WorldBoy 2003-08-31
  • 打赏
  • 举报
回复
Private Sub Command3_Click()
 Rs.Delete
 Rs.MoveNext
 if Rs.eof and Rs.bof then exit sub
 if Rs.eof then Rs.MoveLase
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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