2017-01-17 5 views
0

Я пытаюсь загрузить файлы из GridView .. я сохранять файлы в базе данных, а затем отобразить в GridView я попробовать этоНевозможно привести объект типа «System.DBNull»

, но это показывает ошибку

Исключение типа «System.InvalidCastException» произошло в DecibelCRM.dll, но не было обработано в коде пользователя

Дополнительная информация: Невозможно наложить объект типа «System.DBNull» на тип «System.Byte []».

на этой линии

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

мой результат зр выглядеть следующим образом

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 
+0

Я думаю, что вы конвертируете неправильный столбец в 'Byte' Array. Вы должны преобразовать столбец 'DOCUMENT' не' documentname'. – Ahmad

ответ

0

Использование TryCast вместо DirectCast чтобы избежать этой проблемы

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

Для получения дополнительной информации, почему TryCast должны быть используется здесь: Why use TryCast instead of DirectCast?

Смежные вопросы