C # конвертировать в байтовый массив - PullRequest
0 голосов
/ 03 февраля 2012

Как я могу преобразовать этот код VBNet в C #? (ByteToImage - это определяемая пользователем функция , используемая для преобразования байтового массива в растровое изображение.

Dim Bytes() As Byte = CType(SQLreader("ImageList"), Byte())
picStudent.Image = jwImage.ByteToImage(Bytes)

Я пытался

byte[] Bytes = Convert.ToByte(SQLreader("ImageList")); // Error Here
picStudent.Image = jwImage.ByteToImage(Bytes);

но выдает ошибку: Cannot implicitly convert type 'byte' to 'byte[]'

То, что я делаю, - это в основном преобразование изображения из базы данных в байтовый массив и отображение его на картинке.

Ответы [ 4 ]

11 голосов
/ 03 февраля 2012
byte[] Bytes = (byte[]) SQLreader("ImageList"); 
picStudent.Image = jwImage.ByteToImage(Bytes);
5 голосов
/ 03 февраля 2012

Попробуйте это

byte[] Bytes = (byte[])SQLreader("ImageList");

Надеюсь, это поможет

3 голосов
/ 03 февраля 2012

Проблема в том, что у вас есть массив байтов (byte[] в C # и Byte() в VB.Net), но вызов Convert.ToByte просто возвращает простой byte.Чтобы сделать эту работу, вам необходимо привести значение SQLreader к byte[].

Не существует идеальной аналогичной конструкции для CType в C #, но простое приведение здесь должно сработать

byte[] Bytes = (byte[])SQLreader("ImageList");
2 голосов
/ 03 февраля 2012

CType является эквивалентом приведения типа, а не фактическим преобразованием. Кроме того, Convert.ToByte пытается преобразовать свой ввод в один байт, а не в массив. Эквивалентный код

byte[] bytes=(byte[])SQLreader("ImageList");
...