Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Locktar
1 / 1 / 0
Регистрация: 20.11.2011
Сообщений: 12
1

Чтение Ole картинки из Access 2010 в с# VisualStudio 2008 win 7

20.11.2011, 17:17. Просмотров 2430. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста избавиться от ошибки "Недопустимый параметр" при попытке создать Image объект из потока MemoryStream
Вот код..
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Form1()
        {
            InitializeComponent();
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\tourists.accdb");
            OleDbCommand myCommand = conn.CreateCommand();
            myCommand.Connection = conn;
            myCommand.CommandText = "Select * from test";
            conn.Open();
            OleDbDataReader reader = myCommand.ExecuteReader();
            reader.Read();
            byte[] mas = (byte[])reader[1];
            MemoryStream ms = new MemoryStream(mas);
            ms.Seek(0, 0);//с ним и без него ошибка
            Image im = Image.FromStream(ms);
            reader.Close();
            conn.Close();
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 17:17
Ответы с готовыми решениями:

Загрузка картинки из Access поля Ole
Подскажите как реализовать подгрузку картинки из базы Access поля Ole при нажатие на кнопку,...

Вставка картинки в таблицу Access через OLE (VB6)
Есть таблица в Access 2003 с полем объекта OLE, в котором хранятся картинки jpg. И есть форма с OLE...

Перенос БД из Access 2010 на SQL 2008
При преобразовании на шаге, где нужно выбрать название SQL сервера, тип соединения и задать имя для...

Перевод из MS Access 2010 в MS SQL Server 2008
Здравствуйте, при переводе приложения на платформу SQL Server 2008 столкнулся с ошибкой....

Связать ACCESS 2010 с SQL Server 2008 R2
Здраствуйте ) помогите или подскажите как связать ACCESS 2010 с SQL Server 2008 R2(для ввода...

9
Locktar
1 / 1 / 0
Регистрация: 20.11.2011
Сообщений: 12
16.03.2012, 20:32  [ТС] 2
Ребят, может я мало искал, но не нашел простого способа вставить картинку в таблицу sql server2008, первый раз вставлял в access 2010 как ole объект одним кликом мышки! ну а потом конвертировал, да есть код на C# c помощью которого можно загрузить картинку в базу, код несложный работает, но мне надо много картинок неужели я должен через код а не могу мышкой? Чтение картинок тоже не выходит((( 10 раз сделал так как написано на форуме итог - ошибка может потому что я конвертировал из access но у меня в массиве байт лишние байты в начале и пишет не опознан формат- приходится искать начальные байты заголовка jpeg(
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
17.03.2012, 00:01 3
Вставка и извлечение изображений из БД.
0
granatka
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 30
30.05.2012, 21:00 4
Здравствуйте! Вставила кусочек текста из примера по этой ссылке:
немного переделала под свою таблицу, но выдает ошибку "Недопустимый параметр".
Что у меня может быть неправильно в коде:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
OleDbConnection connect = new OleDbConnection();
            connect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Users.accdb";
            connect.Open();
            OleDbCommand command = new OleDbCommand("SELECT образец FROM Наименование WHERE ИД_наим= 4");
            command.Connection = connect;
            OleDbDataReader oleDbDataReader = command.ExecuteReader();                                                      //Делаем выборку
 
        if (oleDbDataReader.HasRows)                                                                                         //Проверяем есть ли в выборке строки
        {
            MemoryStream memoryStream = new MemoryStream();                                                                  //Создаем поток, в котором будем хранить изображение         
            foreach (DbDataRecord record in oleDbDataReader)                                                                 //Цикл для всех записей, полученных в результате выборки
                memoryStream.Write((byte[])record["образец"], 0, ((byte[])record["образец"]).Length);                            //Пишем в поток
            Image образец = Image.FromStream(memoryStream);                                                                    //Получаем изображение из потока
            this.pictureBox1.Image = Image.FromStream(memoryStream);
            memoryStream.Dispose();                                                                                          //Освобождаем память
        }
        else
            Console.Write("Запрос вернул ноль строк");                                                                       //Вывод сообщения
        connect.Close();                                                                                             //Закрываем соединение с БД.
В бд есть таблица с полями: ИД_наим, наименование, образец
Кто знает, подскажите пожалуйста в чем ошибка?
0
30.05.2012, 21:00
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
04.06.2012, 12:39 5
Проблемам скорее всего в запросе. Попробуйте отдельно выполнить ваш запрос:
SQL
1
SELECT образец FROM Наименование WHERE ИД_наим= 4
к БД.
Если запрос проходит, то выкладывайте обязательно текст ошибки.
0
granatka
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 30
04.06.2012, 13:01 6
А как писать запрос в самой БД?

Добавлено через 1 минуту
Если просто как фильтр, то выделяется нужная строка. а вот как проверить изображение я не знаю..
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
04.06.2012, 13:01 7
а что за СУБД?
0
granatka
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 30
04.06.2012, 13:11 8
Access 2010
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
04.06.2012, 13:14 9
я не работал с ахсексом никогда, но знаю, что там есть редактор запросов в котором можно выполнять запросы к БД. Как получить к нему доступ точно не подскажу, к сожалению.
0
Петррр
6176 / 3477 / 898
Регистрация: 28.10.2010
Сообщений: 5,928
06.06.2012, 18:30 10
MS Access 2007: Создание -> Блок "Другие" -> Конструктор запросов -> появится окно "Добавление таблицы", его закрываете. В правом нижнем углу кнопочка с надписью "SQL"
1
06.06.2012, 18:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 18:30

Как подключиться к MsSQL 2008 из Access 2010?
Никак не получается установить подключение. Google не помог.

Отображение картинки в форме Access 2010
Добрый день. Не удаётся отобразить картинку из подчинённой формы в основной форме. Картинка...

VisualStudio 2008 и .NET 4.6
Можно Ли как нибудь поднять версию .NET Framework ? у меня ток максимальный 3.6 хотелось бы 4.6...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru