Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/26: Рейтинг темы: голосов - 26, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114

Запись pdf файла в поле virbinary(max)

06.05.2015, 13:00. Показов 5164. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите кто может.
Передо мной стоит решение такой задачи: имеется таблица в которой присутствует поле с типом virbinary(max) в нем должны храниться pdf и txt файлы. Добавление происходит через форму и при нажатии на поле открывается файл.
Собственно сама проблема заключается в том, что нет идей каким образом и с помощью каких средств происходит выбор файла и сохранение его в базу.
Зарание благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2015, 13:00
Ответы с готовыми решениями:

Запись Wordовского файла в *.PDF
Народ, прошу помощи. Сам давно не программировал, а тут начальство озадачило мою жену: изменить адрес фирмы во всех Wordовских файлах....

Создание, запись, чтение .pdf файла или бинфайла в С#
Привет! Мне нужно создать писать и читать бинфайлы или .pdf файлы в С#. Но так чтобы никто не мог прочитать и изменить напрямую содержимое...

Запись файла в CLOB-поле Oracle
Мне необходимо вести в Оракле архив всех полученных документов. Не найдя каких-либо продвинутых алгоритмов(понятных мне), я решил делать...

35
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
25.05.2015, 13:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Krish Посмотреть сообщение
не знаю как заменить строку 6
Посылайте запрос в базу на выгрузку поля, в котором лежат байты файла — как обычно делается при работе с вашей платформой.
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 13:54  [ТС]
kolorotur, еще 1 вопрос, если можно. Пытаюсь сделать что бы по нажатию на поле с кнопкой в гриде открывалась форма для просмотра файла.
Вот код
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void litDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 14)
            {
                 PDFForm f2 = new PDFForm();
                 f2.Show();
                 var filename = pDFLabel2.Text;
                 byte[] fileContents;
                 TryReadFile(filename, out fileContents);
                 f2.axAcroPDF1.LoadFile(filename);
            } 
        }
При нажатии на поле - кнопку открывается форма с axAcroPDF1 и пишет, что указанный файл не существует, в чем тут ошибка?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
25.05.2015, 14:06
Цитата Сообщение от Krish Посмотреть сообщение
пишет, что указанный файл не существует
Подозреваю, что указанный файл не существует
Посмотрите в отладчике значение filename — такой файл есть на диске?

Кстати, если вы передаете путь к файлу, то предварительно считывать его в память не нужно.
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 14:17  [ТС]
kolorotur, файл существует, он в базе, в том поле на которое происходит нажатие, но открывать его не хочет
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
25.05.2015, 14:28
Цитата Сообщение от Krish Посмотреть сообщение
файл существует, он в базе
Давайте тогда построчно разберем, что происходит в коде, который вы привели выше:
Цитата Сообщение от Krish Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Создание формы для отображения пдф-а
PDFForm f2 = new PDFForm();
 
// Отображение формы
f2.Show();
 
// Считывание пути к файлу из лейбла
var filename = pDFLabel2.Text;
 
// Попытка считать с диска файл, путь к которому получен строкой выше
byte[] fileContents;
TryReadFile(filename, out fileContents);
 
// Попытка открыть PDF файл, используя путь к файлу на диске, полученный тремя строками выше
f2.axAcroPDF1.LoadFile(filename);
В какой именно строчке происходит "получить файл из базы данных"?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.05.2015, 14:36
Цитата Сообщение от Krish Посмотреть сообщение
у меня база на другой платформе нежели у него...
Не понял, при чем тут, собственно, платформа... У меня там создан отдельный класс для работы с БД. Измените в нем тип провайдера, и все объекты.
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 14:42  [ТС]
insite2012, немного не понимаю что вы предлагаете. Изменить ваш класс под мою бд и использовать его для считывания данных?

Добавлено через 2 минуты
kolorotur, в pDFLabel2 отображается массив, я думал через него можно все сделать.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.05.2015, 14:46
Цитата Сообщение от Krish Посмотреть сообщение
Изменить ваш класс под мою бд и использовать его для считывания данных?
Почему бы и нет? Ну или скажите, какую БД вы используете?
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 14:49  [ТС]
insite2012,Я не так силен в программировании, не знал, что так можно, попытаюсь использовать ваш класс, благо времени хватает.
А база создана в MS SQL Server Managment Studio
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.05.2015, 14:50
Цитата Сообщение от Krish Посмотреть сообщение
база создана в MS SQL Server Managment Studio
То есть просто через дизайнер? Покажите структуру таблицы (таблиц) в БД, накидаю пример для вашего варианта.
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 14:57  [ТС]
insite2012,
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 15:37  [ТС]
insite2012, изменил ваш класс, добавил код на форму, но при попытке выгрузить файл вылетает ошибка

код события:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void litDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 14)
            {
                string name = litDataGridView.SelectedRows[14].Cells[14].Value.ToString();
                byte[] data = DBTest.GetDataFromBase(name);
 
                using (SaveFileDialog dialog = new SaveFileDialog() { FileName = name })
                {
                    if (dialog.ShowDialog() == DialogResult.OK)
                    {
                        File.WriteAllBytes(dialog.FileName, data);
                    }
 
                }
            } 
        }
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.05.2015, 15:41
Krish, в какой из таблиц хранится файл?
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
25.05.2015, 15:47  [ТС]
insite2012, таблица - Literatura поле - PDF
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.05.2015, 15:57
Krish, хорошо, чуть позже попробую, как домой вернусь.
0
1 / 1 / 1
Регистрация: 17.04.2015
Сообщений: 114
26.05.2015, 23:49  [ТС]
insite2012, что-то пропал совсем...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2015, 23:49
Помогаю со студенческими работами здесь

Запись содержимого файла в поле memo
Смотрите как сделал. Создал поле memo в поле это записал содержимое файла. Добавил на форму OnKeyPress , записываю нажатую клавишу в...

Запись в поле BLOB файла rtf из RichEdit
Приветствую. Как можно записать в ячейку таблицы BLOB данные из RichEdit в формате RTF? Пишу вот такой код, но в поле BLOB не...

Запись файла в BLOB поле SQL запросом
Имеется код для записи файла в BLOB поле с помощью ADOTable ADOTable2->Active=true; ADOTable2->Append(); TMemoryStream *M = new...

Даны векторы a и b , состоящие из семи компонентов. Найти max(max(Ai), max(Bi), max(¦Ai-Bi¦), max(Ai+Bі),1)
Даны векторы a и b , состоящие из семи компонентов. Найти max(max(Ai), max(Bi), max(¦Ai-Bi¦), max(Ai+Bі),1).

Запись изображения или просто двоичного файла в поле OLE Access
Помогите пожалуйста примером, как сохранить файл с картинкой в поле OLE. Уже весь мозг сломал.


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru