Как преобразовать изображение в базе данных SQL в System.Drawing.Image? - PullRequest
1 голос
/ 12 августа 2011

В настоящее время я использую Visual Studio 2008 (VB.Net) и SQL Server 2008. У меня есть изображения, сохраненные в базе данных как image.Когда я извлекаю его в свой код, это System.Byte[], и я не могу преобразовать его в System.Drawing.Image для сохранения в моем DevExpress (v10.2) .XtraEditors.ImageEdit.

Я пытался

Dim imgStream As MemoryStream = New MemoryStream(image, 0, image.Length)

или

Dim imgStream As MemoryStream = New MemoryStream(image)

Тем не менее, даже тогда я не могу позвонить image.FromStream(imgStream) или bitmap.FromStream(imgStream), так как при попытке получить "Параметр недействителен".

РЕДАКТИРОВАТЬ:

Мы обновляем с предыдущей системы, которая была на SQL 2000. Когда я запускаю предыдущую программу, я вижу изображение в программе.Когда я запускаю новый, любое изображение, которое я перенес, является «недопустимым параметром», но любое изображение, которое я добавил в базу данных (посредством ввода в программе), доступно для просмотра.Когда я получаю изображения из старой базы данных и новой, они точно такие же.Есть ли разница между SQL 2000 и SQL 2008, которую я должен учитывать при переносе данных?

1 Ответ

1 голос
/ 12 августа 2011

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

Dim MyConverter as ImageConverter = new System.Drawing.ImageConverter()
Dim MyImage as Image = imageConverter.ConvertFrom(byteArray)

Однако эта ошибка обычно означает, что ваши входные данные неверны. Насколько вы уверены, что ваш байтовый массив содержит действительные данные изображения?

...