Страница: 1 |
Вопрос: Залить картинку на сервер - 2 | Добавлено: 04.08.05 14:23 |
Автор вопроса: ![]() |
В каком то топике Павел писал:
... В базе делаем поле типа image - в него можно заливать любые бинарные данные, в том числе и картинки. При сохранении в БД берем картинку, сохраняем ее в байтовый массив: Dim img As Image 'сюда помещается картинка 'Некие действия над картинкой, если нужно Dim MyOut As New IO.MemoryStream img.Save(MyOut, Imaging.ImageFormat.Png) 'Тут формат указывается Dim bytes() As Byte bytes = MyOut.GetBuffer В bytes в итоге лежит картинка в бинарном виде. Сохраняем картинку в БД: Dim Conn As SqlConnection = DB.Conn Dim SQL As String Dim Comm As SqlCommand SQL = "Insert Into log (TaskInfo) Values (@taskinfo)" Comm = New SqlCommand(SQL, Conn) Comm.Parameters.Add("@taskinfo", SqlDbType.Image).Value = bytes Comm.ExecuteNonQuery Если картинка берется из файла, то нужно для получения данных из файла использовать классы из System.IO. Ну а достать картинку тоже несложно. Допустим Вы загрузили данные в DataTable. И нужно достать картинку из нулевой DataRow... Dim bytes() As Byte = CType(DT.Rows(0).Item("taskinfo"), Byte()) Dim ms As New MemoryStream(bytes) ms.Position=0 Dim img As Image = Image.FromStream(ms) ms.Close PictureBox1.Image = img ... Подобним механизмом я воспользовался для занесения в БД обекта типа MyType (вместо Image). ВОПРОС: При востановлении обекта использовалась строка: Dim img As Image = Image.FromStream(ms) Как мне для моего обекта типа MyType сделать перевод MemoryStream->MyType? Спасибо. |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 326066673 Вопросов: 368 Ответов: 5968 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 04.08.05 15:38 |
Используйте сериализацию.
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 299287824 Вопросов: 76 Ответов: 209 |
Профиль | Цитата | #2 | Добавлено: 05.08.05 16:54 |
Да... сереализация это хорошо но как мне "захватить" саму ячейку? Через Reader не получается - инстукцию в SQLCommand типа "SELECT A FROM Tab ..." пишет что ошибка - нельзя использовать для nChar, Image... инструкцию Select
Что делать? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 326066673 Вопросов: 368 Ответов: 5968 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 05.08.05 17:27 |
У меня без проблем Select работает. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 299287824 Вопросов: 76 Ответов: 209 |
Профиль | Цитата | #4 | Добавлено: 05.08.05 18:31 |
Да разобрался, моя ошибка - я питался использовать DISTINCT и ORDER BY ... при виборке через SELECT |
Страница: 1 |
|