VB.NET开发的EXE执行文件在Win10下连接数据库时闪退

5idonet 2020-09-09 10:43:02
背景如下,请朋友们帮忙分析下原因,Win10的用户都有发生闪退,Win7就没问题

开发者系统环境:
Win7 64位;Framework 4.5.2 + Framework 4 Multi-Targeting Pack(4.0.30319);Office 2010 32位
开发软件 Microsoft Visual Studio 2010 32位
生成的EXE执行文件 32位
数据库文件:Office Access 2010数据库 32位


用户运行环境:
在Win7下运行正常(Win7环境:系统64位;Framework 4.6 ;Office 2013 32位)
已安装的AccessDatabaseEngine 2010 32位
无论用户是否未安装Access或已安装了Access


用户运行环境:
在Win10下运行闪退(Win10环境:系统64位;Framework 4 Multi-Targeting Pack(4.0.30319);Office 2016 32位)
已安装的AccessDatabaseEngine 2010 32位
无论用户是否未安装Access或已安装了Access

Win10闪退时症状:都是在用户点击某项操作与数据库连接瞬间,程序界面鼠标呈现后台忙的显示状态后1~3秒就闪退自动关闭,没有任何提示,发生闪退的情况不定时,不操作数据库时未发生闪退现象
...全文
32363 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhonsonzhang 2021-03-26
  • 打赏
  • 举报
回复
数据库连接和访问方式的问题,改为oledb连接访问。AccessDatabaseEngine 2010 32位这个东西教学用的,netframework支持不够。oledb是通吃的,而且可靠。只要系统带framework3.5以上就稳定运行。
milaoshu1020 活跃的高手 2021-03-21
  • 打赏
  • 举报
回复
win10: 右键点击开始按钮,选择事件查看器; 选择Windows日志-应用程序; 即可找到程序发生的错误信息,如图所示:
༄邱࿐ 2020-11-17
  • 打赏
  • 举报
回复
引用 9 楼 weixin_42555388 的回复:
[quote=引用 7 楼 wooyoncs 的回复:]Access太屌,单机版的话用SQLITE不香吗?
大佬有SQLITE数据库加密教程吗[/quote] MD5写入不好吗? Function MD5(ByVal Input As String, ByVal Coda As Integer) As String Dim md5Hasher As New MD5CryptoServiceProvider Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(Input)) Dim sBuilder As New StringBuilder Dim i As Integer If Coda = 16 Then For i = 1 To 7 sBuilder.Append(data(i).ToString("x2")) Next i Else '32位 For i = 0 To 15 sBuilder.Append(data(i).ToString("x2")) Next i End If Return sBuilder.ToString() End Function
ntmdbya 2020-11-13
  • 打赏
  • 举报
回复
项目的高级编译选项中 目标CPU 选择 X86 就好了。
天是海的尽头 2020-11-10
  • 打赏
  • 举报
回复 1
引用 7 楼 wooyoncs 的回复:
Access太屌,单机版的话用SQLITE不香吗?
大佬有SQLITE数据库加密教程吗
圣殿骑士18 2020-10-29
  • 打赏
  • 举报
回复
1、关键代码要加try catch 2、在Program.cs中要增加系统级别的异常捕捉

Main()
{
   Application.ThreadException += Application_ThreadException;
   AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}


/// <summary>
        /// 不可控异常
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            //异常处理
        }

        /// <summary>
        /// 应用级别异常
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            //异常处理
        }


wooyoncs 2020-10-28
  • 打赏
  • 举报
回复
Access太屌,单机版的话用SQLITE不香吗?
dylike 2020-10-25
  • 打赏
  • 举报
回复
在Win10中,大部分需要用到端口的程序都需要管理员权限运行。
清风不拂面 2020-09-10
  • 打赏
  • 举报
回复
没遇到过啊,很少涉及数据库。建议查查MSDN 目前遇到的是win10对有些API支持不好。
  • 打赏
  • 举报
回复
现在很少人使用ACCESS这么高端的数据库。建议换SQL吧。 这东西鬼问题多。不过一般是版本问题。你仔细 查一下就可以了。
5idonet 2020-09-10
  • 打赏
  • 举报
回复
引用 3 楼 horizon_zpy 的回复:
驱动是32位的,编译选择32位,x86,否则,下载安装64位dataaccess驱动吧。


是想试试64位的AccessDatabaseEngine,因为考虑Office是32位的。我试试看。
5idonet 2020-09-10
  • 打赏
  • 举报
回复
引用 1 楼 อาเหว่ย 的回复:
现在很少人使用ACCESS这么高端的数据库。建议换SQL吧。
这东西鬼问题多。不过一般是版本问题。你仔细 查一下就可以了。


呵呵,本来是SQL数据库的,暂时没法挂靠,后面会考虑SQL。现在就是想搞清楚问题出在哪里。
horizon_zpy 2020-09-10
  • 打赏
  • 举报
回复
驱动是32位的,编译选择32位,x86,否则,下载安装64位dataaccess驱动吧。

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧