求助,关于vb.net中模块里方法调用问题

时间:2021-02-08 14:02:20
首先,我有个Moudle1模块,并在模块下面示例化了一个数据库连接的类:
Module Module1
    Public constr As String
    public con as new oledb.oledbconnection
   public sub consnect (ByVal con)
    .......
   end sub
然后我在窗体中调用这个连接方法call consnect (con)就出现了一个问题,当程序第一次启动时能正常调用,但是当我把这个连接关闭掉con.close  con =nothing时,再去调用这个consnect 方法,就提示object  variable or with block variable not set,字面意思就是对象变量没有设置,是不是模块里的实例只有在程序启动时就实例化一次,下次再调用con就不会被new一次了?

7 个解决方案

#1


你都设置Nothing了还调用,这不是必然的么。。。

#2


引用 1 楼 yangliu0512 的回复:
你都设置Nothing了还调用,这不是必然的么。。。

但是我把nothing注释掉,只是close,仍然是报这个错误的

#3


 public sub consnect (ByVal con)代码贴上来看看吧

#4


不要关闭连接就可以了。为什么一定要关闭连接呢。
你这个方法要重新打开连接才能执行。

#5


引用 3 楼 yangliu0512 的回复:
 public sub consnect (ByVal con)代码贴上来看看吧

我是从vb6.0转过来的,在vb6.0可以正常运行,这里面就不行了

#6


引用 4 楼 looptotoo 的回复:
不要关闭连接就可以了。为什么一定要关闭连接呢。
你这个方法要重新打开连接才能执行。

我这个方法就是打开数据库连接的方法,只有关闭了才能去连接其他的数据库文件啊

#7


引用 5 楼 baidu_30536197 的回复:
Quote: 引用 3 楼 yangliu0512 的回复:

 public sub consnect (ByVal con)代码贴上来看看吧

我是从vb6.0转过来的,在vb6.0可以正常运行,这里面就不行了

原因已经找到了,就是模块下的实例只会本实例化一次,下次再调用改模块下的方法时,con就不会被new了,注释掉所有相关的=nothing对象就行了

#1


你都设置Nothing了还调用,这不是必然的么。。。

#2


引用 1 楼 yangliu0512 的回复:
你都设置Nothing了还调用,这不是必然的么。。。

但是我把nothing注释掉,只是close,仍然是报这个错误的

#3


 public sub consnect (ByVal con)代码贴上来看看吧

#4


不要关闭连接就可以了。为什么一定要关闭连接呢。
你这个方法要重新打开连接才能执行。

#5


引用 3 楼 yangliu0512 的回复:
 public sub consnect (ByVal con)代码贴上来看看吧

我是从vb6.0转过来的,在vb6.0可以正常运行,这里面就不行了

#6


引用 4 楼 looptotoo 的回复:
不要关闭连接就可以了。为什么一定要关闭连接呢。
你这个方法要重新打开连接才能执行。

我这个方法就是打开数据库连接的方法,只有关闭了才能去连接其他的数据库文件啊

#7


引用 5 楼 baidu_30536197 的回复:
Quote: 引用 3 楼 yangliu0512 的回复:

 public sub consnect (ByVal con)代码贴上来看看吧

我是从vb6.0转过来的,在vb6.0可以正常运行,这里面就不行了

原因已经找到了,就是模块下的实例只会本实例化一次,下次再调用改模块下的方法时,con就不会被new了,注释掉所有相关的=nothing对象就行了