Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
7 / 5 / 2
Регистрация: 06.10.2018
Сообщений: 183

Чтение и запись файлов в базу

04.04.2021, 07:51. Показов 3168. Ответов 6

Студворк — интернет-сервис помощи студентам
всем привет! столкнулся я тут с одной проблемкой и похоже без вас не справлюсь
суть проблемы. Мне нужно загрузить и выгрузить файл PDF в базу данных LONGBLOB

вот как я пытаюсь сделать:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void button1_Click(object sender, EventArgs e)
        {
            fs = new FileStream(@"тут путь к файлу", FileMode.Open); // открываем файл
            byte[] fileBuffer = new byte[fs.Length];
            fs.Read(fileBuffer, 0, (int)fs.Length);                  // читаем в бинарный буфер
            fs.Close();
 
            DB db = new DB();
            MySqlCommand command = new MySqlCommand("INSERT INTO `test` (`doc`) VALUES (@doc)", db.getConnection());
            command.Parameters.Add("@doc", (MySqlDbType)System.Data.DbType.Binary).Value = fileBuffer;
 
            db.openConnection();
            if (command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("успех");
            }
            else
                MessageBox.Show("Что то пошло не так, попробуйте ещё раз");
            db.clouseConnection();
        }
вот такая ошибка
System.InvalidCastException: "Не удалось привести тип объекта "System.Byte[]" к типу "System.IConvertible"."

Добавлено через 1 час 26 минут
сделал вот так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
private void button1_Click(object sender, EventArgs e)
        {
            var fileContent = string.Empty;
            var filePath = string.Empty;
 
            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                openFileDialog.InitialDirectory = "c:\\";
                openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
                openFileDialog.FilterIndex = 2;
                openFileDialog.RestoreDirectory = true;
 
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    //Получаю путь к указанному файлу
                    filePath = openFileDialog.FileName;
 
                    //Считываю содержимое файла в поток
                    var fileStream = openFileDialog.OpenFile();
 
                    using (StreamReader reader = new StreamReader(fileStream))
                    {
                        fileContent = reader.ReadToEnd();
                    }
                }
            }
 
            DB db = new DB();
            MySqlCommand command = new MySqlCommand("INSERT INTO `doc` (`doc`) VALUES (@doc)", db.getConnection());
            command.Parameters.Add("@doc", MySqlDbType.Blob).Value = fileContent;
 
 
            db.openConnection();
            if (command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("успех");
            }
            else
                MessageBox.Show("Что то пошло не так, попробуйте ещё раз");
            db.clouseConnection();
            
        }
все работает
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2021, 07:51
Ответы с готовыми решениями:

Как организовать чтение и запись в базу файлов?
Всем всего! Я многое пропустил в этой жизни, а хотелось бы наверстать упущенное. Отсюда вопрос: Как все-таки организовать чтение и запись...

Чтение и запись файла в базу
Стоит задача: считать файл и записать его в базу данных и обратно, считать файл из базы и записать его по указанному пути.

Spring Kafka: Запись в базу данных и чтение из неё
Гайз, нужен хэлп. Киньте инфу или подскажите как записывать данные из Kafka в базу данных, а потом читать из базы и писать в топики...

6
7 / 5 / 2
Регистрация: 06.10.2018
Сообщений: 183
04.04.2021, 14:35  [ТС]
кто подскажет как теперь этот PDF файл скачать обратно на ПК
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
04.04.2021, 20:08
nsprovasiliy, вы бинарные данные читаете как строку.
Есть вероятность, что потом ваш pdf-reader (adobe, foxit) скажет вам что-то вроде: "Format Error: Not pdf or corrupted".
0
7 / 5 / 2
Регистрация: 06.10.2018
Сообщений: 183
04.04.2021, 20:15  [ТС]
делать что ?
0
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
06.04.2021, 09:07
Цитата Сообщение от nsprovasiliy Посмотреть сообщение
делать что ?
Сначала научись читать файл в байты и переводить байты обратно в файл (копию). Если файл после этого нормально открывается - переходи к сохранению байтов в ячейку таблицы базы, колонка должна иметь соответствующий тип.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
06.04.2021, 16:46
Цитата Сообщение от nsprovasiliy Посмотреть сообщение
кто подскажет как теперь этот PDF файл скачать обратно на ПК
Скачать или открыть ? Например, в Word ?
Если открыть, то нужно использовать соответствующие классы http://wladm.narod.ru/C_Sharp/comword.html
Насколько я понял, Word Вам нужен не столько для работы с самим документом, сколько для его отображения и сохранения в файловой структуре ПК с установленным приложением.
Однако можно работать с документом и в самом ворде, загруженным в одном из контролов приложения (например в созданной им модельной форме). И сохранять измененный в Word pdf назад в базу тоже вполне возможно.
0
7 / 5 / 2
Регистрация: 06.10.2018
Сообщений: 183
02.05.2021, 23:22  [ТС]
всем спасибо разобрался )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2021, 23:22
Помогаю со студенческими работами здесь

Запись в базу, чтение из базы и последующий вывод картинки
Как организовать Запись в базу, чтение из базы и последующий вывод картинок, например bmp в MS SQL? Можете поделиться кодом или алгоритмом?...

Чтение и запись файлов
у меня возникла проблема с реализацией чтения файлов в сети полно примеров по этой теме, но в основном они написаны c под компиляторы...

Запись и чтение файлов
День добрый, подскажите какими методами осуществляется чтение и запись данных в файл? Я использую C# в связке с unity. Ранее писал в...

запись и чтение файлов
Возникла проблема.Нужно читать из файла определенные значения...Т.е. как конфиг,но не совсем.. Т.е надо найти строчку в файле,и прочитать...

Чтение и запись файлов С++
Здравствуйте, допустим мне нужно написать программу которая открывает файл, где написано что-то вроде { time = 1 ; win = 0 } У меня в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru