C#中用代码运行没有问题,但是用exe运行就会报objectdisposeexception,这是为什么,急急!!!!

C#中用代码运行没有问题,但是用exe运行就会报objectdisposeexception,这是为什么,急急!!!!,第1张

你如何测试的代码运行没有问题?

运行exe报错一般会有下面几个消高方面

1、离开编译环境就报错,是缺少运行组件或组件版本不对

2、程序有内存溢出

3、请求的资源已被占用(你使用的资源没有释放)

4、程序语指桥虚法没唯燃有问题,但逻辑有问题

用GC.KeepAlive(a).a是你定义的

KeepAlive 方法的目的是确保对对象的引亏轮用存在,该对象有被垃圾回收器穗山过早回销族信收的危险。这种现象可能发生的一种常见情形是,当在托管代码或数据中已没有对该对象的引用,但该对象仍然在非托管代码(如 Win32 API、非托管 DLL 或使用 COM 的方法)中使用。另一种过早发生垃圾回收的情形是,在一个方法中创建并使用一个对象。此时,当对对象的某个成员的调用仍在执行时,可能会对该对象进行回收,如第一个代码示例所示。

释蔽蠢放资源对象是Conn吧,你写的:conn.Open()呢!当然所释放的对象就是打开数据库对象了,不关Cmd的事,把 cmd.Dispose()改成conn.Dispose()就可以啦

--以上错误,逻辑上的错误宏汪陪

using()//在完成之后.会自动关闭连接的,

本来想手动cmd.dispose是没有错的,虽然有垃圾收集器.但是因为陵姿你return了函数就返回调用点了,导致没有方法访问cmd.dispose


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8279468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存