CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

删除记录出错,关于sql,listbox的。

楼主tully(天涯)2006-03-16 22:01:36 在 VB / 数据库(包含打印,安装,报表) 提问

数据库为stockinfo2k.mdb,表为userinfo,字段为name  
  listname为text控件  
  Private   Sub   del()  
  Dim   cn   As   Connection  
  Dim   rs   As   Recordset  
  Dim   cnStr   As   String  
  Dim   rsStr   As   String  
  cnStr   =   "provider=microsoft.jet.oledb.4.0;data   source="   &   App.Path   &   "\db\StockInfo2k.mdb"  
  rsStr   =   "delete   *   from   userinfo   where   name="   &   "'"   &   Trim(ListName.Text)   &   "'"  
  Set   cn   =   New   Connection  
  Set   rs   =   New   Recordset  
  cn.CursorLocation   =   adUseClient  
  cn.Open   cnStr  
  rs.Open   rsStr,   cn  
  rs.Close-----------------------------这一句出错。  
  cn.Close  
  End   Sub  
  *********************************************************************************  
  另外,这个表是连接到listbox控件的。  
  进行了delete,update,insert   into   这些   sql语句,要怎么才能刷新listbox上显示的记录.  
  我连接listbox的方法哪下:  
  Private   Sub   listboxDisplay()  
  Dim   cn   As   Connection  
  Dim   rs   As   Recordset  
  Dim   tempstr   As   String  
  Dim   cnStr   As   String  
  Dim   rsStr   As   String  
  cnStr   =   "provider=microsoft.jet.oledb.4.0;data   source="   &   App.Path   &   "\db\StockInfo2k.mdb"  
  rsStr   =   "select   name   from   userinfo"  
  Set   cn   =   New   Connection  
  Set   rs   =   New   Recordset  
  cn.CursorLocation   =   adUseClient  
  cn.Open   cnStr  
  rs.Open   rsStr,   cn  
  Do   Until   rs.EOF  
          tempstr   =   rs("name")  
          ListName.AddItem   tempstr  
          rs.MoveNext  
  Loop  
  rs.Close  
  cn.Close  
  End   Sub  
  问题点数:20、回复次数:5Top

1 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-16 22:57:05 得分 10

删除一般这样写:  
  Private   Sub   del()  
  Dim   cn   As   Connection  
  Dim   cnStr   As   String  
  Dim   rsStr   As   String  
  cnStr   =   "provider=microsoft.jet.oledb.4.0;data   source="   &   App.Path   &   "\db\StockInfo2k.mdb"  
  rsStr   =   "delete   *   from   userinfo   where   name="   &   "'"   &   Trim(ListName.Text)   &   "'"  
  Set   cn   =   New   Connection  
  cn.CursorLocation   =   adUseClient  
  cn.Open   cnStr  
  cn.Execute   rsStr  
  cn.Close  
  Set   cn=Nothing  
  End   Sub  
   
   
  进行了delete,update,insert   into   这些   sql语句,要怎么才能刷新listbox上显示的记录.  
  ------------------------------  
  先清除List的内容(list1.Clear   ),再调用一下listboxDisplay()过程(Call   listboxDisplay   )就是刷新了  
  Top

2 楼tully(天涯)回复于 2006-03-17 08:32:26 得分 0

我的listboxdisplsy过程可以达到listbox控件的更新过程.  
  --------  
  我问错了,本意是,要如何进行了delete,update,insert   into   这些   sql语句?  
  都不用rs作为recordset可以进行吗?  
  都用cn作为connection并用execute??  
  ----  
  我在公共模块有定义了一个g_conn作为connection!  
  但是g_conn.execute(sql语句)会出错.  
  所以我才改用重新定议了一个cn,rs.  
  Top

3 楼tully(天涯)回复于 2006-03-17 08:33:32 得分 0

还有,我想知道.  
  "rs.Close-----------------------------这一句出错。"  
  这一句为什么会出错???  
  Top

4 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-17 09:16:28 得分 0

rs.Open   rsStr,   cn  
  rs.Close-----------------------------这一句出错。  
   
  因为rsStr是删除语句,所以执行后,rs的状态并不是打开的,所以关闭它时会出错,可以这样写:  
   
  rs.Open   rsStr,   cn  
  If   rs.State   =   adStateOpen   Then   rs.CloseTop

5 楼of123()回复于 2006-03-17 10:39:08 得分 10

Delete,   Insert   Into,   Select   Into,   Update   语句是不返回记录集的。所以不要用   recordset   对象。  
   
  Private   Sub   del()  
  Dim   cn   As   Connection  
  Dim   rs   As   Recordset  
  Dim   cnStr   As   String  
  Dim   rsStr   As   String  
  cnStr   =   "provider=microsoft.jet.oledb.4.0;data   source="   &   App.Path   &   "\db\StockInfo2k.mdb"  
  rsStr   =   "delete   *   from   userinfo   where   name="   &   "'"   &   Trim(ListName.Text)   &   "'"  
  Set   cn   =   New   Connection  
  cn.CursorLocation   =   adUseClient  
  cn.Open   cnStr  
  cn.Execute   rsStr  
  cn.Close  
  set   cn   =   nothing  
   
  listboxDisplay  
   
  End   Sub  
   
  Private   Sub   listboxDisplay()  
  Dim   cn   As   Connection  
  Dim   rs   As   Recordset  
  Dim   tempstr   As   String  
  Dim   cnStr   As   String  
  Dim   rsStr   As   String  
  cnStr   =   "provider=microsoft.jet.oledb.4.0;data   source="   &   App.Path   &   "\db\StockInfo2k.mdb"  
  rsStr   =   "select   name   from   userinfo"  
  Set   cn   =   New   Connection  
  Set   rs   =   New   Recordset  
  cn.CursorLocation   =   adUseClient  
  cn.Open   cnStr  
  rs.Open   rsStr,   cn  
   
  ListName.Clear  
   
  Do   Until   rs.EOF  
          tempstr   =   rs("name")  
          ListName.AddItem   tempstr  
          rs.MoveNext  
  Loop  
  rs.Close  
  set   rs   =   nothing  
  cn.Close  
  set   cn   =   nothing  
  End   Sub  
  Top

相关问题

  • sql语句删除出错的问题
  • jsp+SQL删除记录出错,请指教!
  • 在删除SQL一客户数据库时,提示出错!
  • ADOQuery1->Delete()为什么老是出错?最好不是用SQL删除
  • 在SQL Server2000企业管理器中删除记录出错?请高手指点!
  • 利用VC+ADO删除SQL数据库出错的问题,在线等
  • 用这条SQL语句删除表中的一列为什么出错?
  • listview删除listitem出错
  • 删除记录出错?
  • asp删除记录出错

关键词

  • 语句
  • rsstr
  • stockinfo2k
  • aduseclientcn
  • connectiondim
  • stringcnstr
  • recordsetdim
  • listname
  • 出错
  • cnstrrs

得分解答快速导航

  • 帖主:tully
  • faysky2
  • of123

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo