получить массив байтов из таблицы данных в список c # - PullRequest
0 голосов
/ 18 октября 2018

Я дал byte[], хранящийся в базе данных,

Я получаю массив байтов в моем DataTable из sql

image

это мой DataTable, System.byte [] - мое изображение в байтах, которое хранится в моей базе данных

, теперь я хочу преобразовать этот DataTable в список

этомой текущий код

var answerList = (from rw in dt.AsEnumerable()
                    select new RegistrationAnswers()
                    {
                        responseID = rw["responseID"].ToString() == string.Empty ? 0 : Convert.ToInt32(rw["responseID"].ToString()),
                        responseRegID = rw["responseRegID"].ToString() == string.Empty ? 0 : Convert.ToInt32(rw["responseRegID"].ToString()), 
                        responseAnswer = rw["responseAnswer"].ToString(),
                        _ResponseDocument =  rw["responseDocument"], //here i want to validate if rw["responseDocument"] is null or not and if this is not null then assign the byte[] data to _ResponseDocument 
                        formID=Convert.ToInt32(rw["formID"])
                    }).ToList();

, когда я обновил свой код до

//At top
byte[] tempByteArray = new byte[0];

_responseDocument = Convert.IsDBNull((byte[])rw["responseDocument"]) == false ? tempByteArray : (byte[])rw["responseDocument"],

Я получаю следующую ошибку

'Невозможно привести объект типа' System.DBNull 'чтобы набрать 'System.Byte []'. '

я хочу проверить, является ли rw ["responseDocument"] нулевым или нет, и если это не ноль, тогда присвойте данные байта [] _ResponseDocument

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Я столкнулся с той же проблемой при получении данных из DataTable в list

, что я сделал, создал байтовый массив в методе

byte[] tempByteArray = new byte[0];

и в моем циклесделал что-то вроде этого

_responseDocument = rw["responseDocument"].ToString() == "" ? tempByteArray : (byte[])rw["responseDocument"],
0 голосов
/ 18 октября 2018

Попробуйте разыграть

rw["responseDocument"] == System.DBNull.Value ? new byte[0] : (byte[])rw["responseDocument"];

или

Convert.IsDBNull(rw["responseDocument"]) ? new byte[0] : (byte[])rw["responseDocument"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...