“对象关闭时,不允许操作.”,该怎么解决

 我来答
莫名留香
2017-07-06 · TA获得超过125个赞
知道答主
回答量:79
采纳率:0%
帮助的人:29万
展开全部
VB中“对象关闭时,不允许操作”解决方案

最近两天在VB里弄一些小程序,好久没接触了,感觉有些陌生了,还算有点基础吧,遇到一些小的难题基本上都能解决。不过,这下真的遇到难题了,琢磨半天硬是没弄出结果来,在网上查资料也没个底,如同大海捞针呀,关键是没一点正经的答案和可行的方案。

问题是这样的,在VB中执行存储过程,想输出返回值并将数据绑定到DataGrid控件中,本来是件小菜的问题,在.NET、ASP里都做通过,但在VB里却是折磨了半天也没弄出来。还是自己动手吧,有问题就得想办法,一步步来吧。

先在SQL 2000中写好存储过程了,(这里不再写出存储过程的具体代码了,也就是一个返回值,一个记录集)然后在VB中引用ADO对象,输入如下代码,以调用存储过程:
Dim lackconn As New ADODB.Connection
lackconn.ConnectionString=Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=boyd;Initial Catalog=mydb;Data Source=(local)
lackconn.CursorLocation = adUseClient '设置为客户端
lackconn.Open

Set lackcmd = New ADODB.Command
lackcmd.ActiveConnection = lackconn
lackcmd.CommandText = myproc '这里为存储过程名称
lackcmd.CommandType = adCmdStoredProc '指定为存储过程
Set param = lackcmd.CreateParameter(@num, adInteger, adParamReturnValue, 4) '@num为返回值
lackcmd.Parameters.Append param
Set lackrs = New ADODB.Recordset
Set lackrs = lackcmd.Execute()
msgbox 站点总数: & lackcmd.Parameters(@num).Value & 个

Set mydatagrid.DataSource = lackrs 'mydatagrid为对象名称
mydatagrid.Refresh '刷新DataGrid
'下面关闭数据库对象等略去

就这样的一个简单的代码,一运行就出错,提示错误在“Set mydatagrid.DataSource = lackrs”,错误就是“对象关闭时,不允许操作”。郁闷ing...,这哪来的错误呢?我根本没关闭数据库连接,其他内容也是没有问题的呀。花了很长时间没能解决,大清早再打开电脑时,灵机一动,搞定了。这里将这种现象作下总结,顺便记录一下本次解决过程。
匿名用户
2017-07-06
展开全部
右击计算机或这台电脑选属性/选择左面的高级系统设置/性能中的设置/高级/虚拟内存选项选择更改/自动管
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文可庹艳卉
2019-07-04 · TA获得超过1107个赞
知道小有建树答主
回答量:1925
采纳率:100%
帮助的人:9万
展开全部
你的sql语句已经把相关记录删除了,dRs现在应该是空记录了.是空记录的话,再删除出错就应该理解了.删除记录建议用conn.execute方法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式