以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]未将对象引用设置到对象的实例  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120889)

--  作者:5159518
--  发布时间:2018/6/25 19:55:00
--  [求助]未将对象引用设置到对象的实例

图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看


遇到上图报错

项目用来存储文件
插入文件代码:

If Tables("B02订单报价").Current Is Nothing Then
    Return
End If
Dim dr As DataRow = Tables("B02订单报价").Current.DataRow
If dr.RowState = DataRowState.Added Then \'如果是新增行,必须先保存才能插入文件
    dr.Save()
End If
Dim dlg As New OpenFileDialog
dlg.Filter = "pdf文件|*.jpg"
If dlg.ShowDialog =DialogResult.OK Then
    Dim fl As String = dlg.FileName
    Dim ex As String = fl.SubString(fl.LastIndexOf(".") + 1) \'获取文件后缀名
    ex = ex & "|" & CRCCheckFile(fl) \'将后缀名和文件的crc校验值组合成一个字符串
    dr.SQLInsertFile("回执单",fl) \'插入文件
    dr.SQLSetValue("回执CRC",ex) \'将文件的后缀名和crc校验值保存在信息列
    dr.Save()
End If


打开文件代码:

Dim dr As DataRow = Tables("B02订单报价").Current.DataRow
Dim pts() As String = dr.SQLGetValue("回执CRC").Split("|")
Dim fl As String =  ProjectPath & "Reports\\报价单(回执)." & pts(0) \'指定目标PDF文件
msgbox(fl)
msgbox(pts(1))
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = pts(1) Then \'如果本地存在同名文件且CRC校验值相同
    msgbox(1)    \'则直接使用本地文件
Else \'否则从数据库提取文件
    msgbox(dr("回执CRC"))
    If dr.SQLLoadFile("回执单",fl) = False Then \'如果提取文件失败
        Messagebox.Show("附件提取失败,可能并不存在附件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If
Dim Proc As New Process \'打开文件
Proc.File = fl
Proc.Start()


想请问老师,代码有问题吗?
如果有问题,哪里出了问题?(这是按照帮助文件里的代码写的)
如果没有问题,为什么报错?

另外,系统重启过了,也新建了项目试过了,bin文件夹也删了,都是这样的,不明白为什么?

请问老师,这是啥情况?
[此贴子已经被作者于2018/6/25 19:55:37编辑过]

--  作者:有点蓝
--  发布时间:2018/6/25 20:42:00
--  
打开文件一样先判断一下

If Tables("B02订单报价").Current Is Nothing Then
    Return
End If
Dim dr As DataRow = Tables("B02订单报价").Current.DataRow
Dim pts() As String = dr.SQLGetValue("回执CRC").Split("|")
Dim fl As String =  ProjectPath & "Reports\\报价单(回执)." & pts(0) \'指定目标PDF文件
msgbox(fl) \'这里以及下面的提示框都弹出什么内容?
msgbox(pts(1))
……

--  作者:5159518
--  发布时间:2018/6/25 21:40:00
--  
msgbox(dr("回执CRC")),这里弹出的是crc校验值,接着就弹出这个报警,然后就弹出附件提取失败的对话框
--  作者:有点蓝
--  发布时间:2018/6/25 22:03:00
--  
msgbox(fl)是什么内容
--  作者:5159518
--  发布时间:2018/6/25 22:15:00
--  
文件路径+文件名+扩展名
--  作者:5159518
--  发布时间:2018/6/25 22:17:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/6/25 22:18:00
--  
数据库有没有这行对应的二进制数据?
--  作者:5159518
--  发布时间:2018/6/25 22:18:00
--  
有的
--  作者:5159518
--  发布时间:2018/6/25 22:20:00
--  
SQL数据库,列名“回执单”,数据类型:image,后来改为“varbinary(MAX)”,都报警
--  作者:有点蓝
--  发布时间:2018/6/25 22:29:00
--  
只能用Image。新建数据库,添加这个表的数据,做个项目实例发上来看看