Vb.net 我的程序仅在一台PC中停止工作(第二次存储图片时)

Vb.net 我的程序仅在一台PC中停止工作(第二次存储图片时),vb.net,ms-access,Vb.net,Ms Access,我开发了这个程序,并在多台电脑上试用,在其中一些电脑上效果很好 有两台电脑的32位,出现停止工作错误 我将其中一个升级为64位,但仍然存在相同的问题 错误同时出现: 我从计算机中选择图片,然后它将显示在图片框中 我将数据保存在DB上(数据包括文本和图片(ole对象)) 然后,我尝试添加新记录并选择“新建图片”,错误消息会出现(程序停止工作) visual Studio和access DB使用visual basic.net开发的程序 显示图片的代码: Dim opf As Ne

我开发了这个程序,并在多台电脑上试用,在其中一些电脑上效果很好

有两台电脑的
32位
,出现停止工作错误

我将其中一个升级为64位,但仍然存在相同的问题

错误同时出现:

  • 我从计算机中选择图片,然后它将显示在图片框中

  • 我将数据保存在DB上(数据包括文本和图片(ole对象))

  • 然后,我尝试添加新记录并选择“新建图片”,错误消息会出现(
    程序停止工作


  • visual Studio和access DB使用visual basic.net开发的程序

    显示图片的代码:

            Dim opf As New OpenFileDialog
    
            opf.Filter = "Choose Image(*.JPG;*.PNG;*.GIF)|*.jpg;*.png;*.gif"
    
            If opf.ShowDialog = Windows.Forms.DialogResult.OK Then
                nameOfFile = opf.FileName
                PicBox.Image = Image.FromFile(opf.FileName)
    
            End If
    

    如果应用程序崩溃,您可能需要处理任何异常。一旦您处理了异常,您就可以通过messagebox查看错误,它可能会告诉您应用程序出现问题的原因。
    作为猜测,这可能是32位/64位驱动程序的问题,但最好先看看为什么应用程序会出现问题。

    以下是@Dennis建议的代码

    Try
       Dim opf As New OpenFileDialog
    
        opf.Filter = "Choose Image(*.JPG;*.PNG;*.GIF)|*.jpg;*.png;*.gif"
    
        If opf.ShowDialog = Windows.Forms.DialogResult.OK Then
            nameOfFile = opf.FileName
            PicBox.Image = Image.FromFile(opf.FileName)
    
        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
    
    我猜这个错误更可能出现在Save代码中。如果这不会生成MessageBox,则在保存代码上尝试相同的操作


    如果这解决了您的问题,请接受@Dennis的答案,因为这是他的主意。

    我写了try catch并将消息框显示出来,但没有消息框出现,只是停止工作!并且保存数据aleady有try catch和MessageBox。显示异常,但什么也没有发生@AmaniMeen-同时检查Windows事件查看器。可能有一些有用的信息。@ChrisDunaway我发现了2个错误:应用程序:VB1.exe框架版本:v4.0.30319说明:由于未处理的异常,进程被终止。异常信息:System.Windows.Forms.FileDialogNative+IFileDialog.Show(IntPtr)at System.Windows.Forms.FileDialog.RunDialogVista(IntPtr)处的System.AccessViolationException(System.AccessViolationSystem.Windows.Forms.FileDialogNative+IFileDialog.Show)(IntPtr)第二个错误:出错应用程序名称:VB1.exe,版本:1.0.0.0.0,时间戳:0xd858eab9出错模块名称:DUI70.dll,版本:6.3.9600.17415,时间戳:0x54503a46异常代码:0xc0000005故障偏移量:0x00060a6f故障进程id:0x18f0故障应用程序启动时间:0x01d4d81b7fd5a134故障应用程序路径:C:\Program Files\tttt\VB1.exe故障模块路径:C:\Windows\system32\DUI70.dll报告id:316b658a-440f-11e9-973a-40167ed342bd故障包全名:错误包相对应用程序ID: