积极答复者
写入access数据库后,程序引发异常

问题
-
VS2010 + C#,程序中从远程服务器上的sql2005数据库中读取数据,然后一条条写入本地access2003数据库。调试发现,当写入数据量达到3000多条(对应access数据库文件约900多KB)后,经常导致应用程序崩溃,VS调试环境下提示:xxx程序出现错误,即将被关闭。换了另外一台机器同样在VS下测试,出错时则提示:已引发了未经处理的win32异常,IntelliTrace中断,看不到异常信息。因为程序出错时刻是不固定的,经反复测试,发现当写入数据库后,再打开第三方程序如IE等,再使用office去打开access数据库时,就很容易引发上述错误。把所有相关代码都加上try{}catch{},捕捉不到异常;在程序的最顶层注册异常事件
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
也不能获得UnhandledException 事件的触发。
既然捕获不到这类错误的信息,只好自己从代码上找原因。把从服务器sql数据库获取数据的代码改成从本地另外一个存有记录的access数据库读取数据,然后写入空的access数据库中,反复测试了十几遍,没有发现异常。程序中使用OleDbConnection连接access,只实例化了一次,仔细检查并已确认open和close动作都是正确的。此外,我的代码中没有使用到API。
会是什么原因呢?望高手指点,谢谢!
- 已编辑 JSHZP 2011年11月21日 14:29