无法转换类型为#System ;DBNull'

时间:2017-01-17 06:05:32

标签: vb.net gridview download

我尝试从gridview下载文件..我在数据库中保存文件然后我在gridview中显示我试试这个

但这显示错误

类型' System.InvalidCastException'的例外情况发生在DecibelCRM.dll中但未在用户代码中处理

附加信息:无法转换类型为#System ;DBNull'的对象输入' System.Byte []'。

在这一行

 Dim binary() As Byte = DirectCast(structDb.dstResult.Tables(0).Rows(i).Item("document"), Byte())

我的sp结果看起来像这样

documentid  documentname     DOCUMENT                          Docextension
43         Employment .pdf       0x255044462D312E330D25E2E3...        .pdf 
614       Information.xlsx   0xFFD8FFE12FFE4578696600004D...          .xlsx
615         pdf.pdf          0x504B0304140006000...                   .pdf
616        IMG_0207.JPG      0x456dfghs70004....                       .jpg

1 个答案:

答案 0 :(得分:0)

使用TryCast代替DirectCast来避免此问题

 Dim binary() As Byte = _
    TryCast(structDb.dstResult.Tables(0).Rows(i).Item("documentname"), Byte())

有关为什么应该在此处使用TryCast的更多信息:Why use TryCast instead of DirectCast?