Реферат: Работа с объектами большого объема в MS SQL и ADO

А что, если у вас уже есть изображение (скажем, в объекте PictureBox) и вам нужно сохранить его в базу? В этом случае нужно использовать другой поток – MemoryStream. Вот как это может быть сделано:

sb.Text = "connecting to database..."

sb.Refresh()

'Если соединение не открыто, открываем

If conn.State <> ConnectionState.Open Then

conn.Open()

End If

sb.Text = "loading image..."

sb.Refresh()

'Создание и подготовка к вызову хранимой процедуры

Dim cmd As New SqlClient.SqlCommand("AddBlob", conn)

cmd.CommandType = CommandType.StoredProcedure

'Сохранение изображения в поток в памяти в формате BMP

Dim stream As New MemoryStream()

img1.Image.Save(stream, Imaging.ImageFormat.Bmp)

stream.Seek(0, SeekOrigin.Begin)

'Подготовка параметров

cmd.Parameters.Add("@img", SqlDbType.Image)

With cmd.Parameters("@img")

.Direction = ParameterDirection.Input

'Воспользуемся удобным методом ToArray. Жалко что его нет у FileStream-a

.Value = stream.ToArray()

End With

'Вызов хранимой процедуры

cmd.ExecuteNonQuery()

sb.Text = "Ready"

Теперь рассмотрим случай, когда нужно извлекать изображение из базы с помощью ADO.NET. Последовательность действий может быть такой:

Открыть соединение.

Подготовить команду (SqlCommand).

К-во Просмотров: 673
Бесплатно скачать Реферат: Работа с объектами большого объема в MS SQL и ADO