спасибо за ваш интерес.Загрузка из памяти (малого) изображения с SQL Server
Я тестирую небольшую мою программу, предназначенную для загрузки и получения изображений с SQL Server.
Когда я запускаю приведенный ниже код, я получаю ошибку «Недостаточно памяти», хотя мой компьютер имеет 8 ГБ оперативной памяти, а программа - буквально только одна форма.
Dim cmd As New SqlCommand("SELECT DP FROM PersonsA WHERE Members_ID = 1", con)
cmd.CommandType = CommandType.Text
Dim ImgStream As New IO.MemoryStream(CType(cmd.ExecuteScalar, Byte()))
PictureBox2.BackgroundImage = Image.FromStream(ImgStream)
ImgStream.Dispose()
con.Close()
Необработанное исключение типа 'System.OutOfMemoryException' произошло в System.Drawing.dll
Дополнительная информация: Недостаточно памяти.
отладки выдвигает на первый план BackgroundImage =
строку, если изменить BackgroundImage
к только Image
, программа работает. Но я жертвую вариантом макета таким образом.
Почему эта ошибка возникает, и только когда это BackgroundImage
?
Если вы используете ' Image.FromStream (ImgStream, False, True) ', вы получаете другое исключение? Этот код проверяет (третий аргумент True) данные изображения. – FrankPl
это также может зависеть от того, как и что было сохранено в БД - возможно, это было неправильно сохранено. Посмотрите, можете ли вы создать изображение из db и сохранить его на диск, чтобы вы могли его изучить. – Plutonix
Тип данных на SQL Server - это изображение. Он сохраняет изображение в шестнадцатеричном формате - от внешнего вида в любом случае. – user3224987