|
Модераторы: gambit |
|
Krayshon |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.7.2015 Репутация: нет Всего: нет |
Имеется база в которой хранятся pdf и txt файлы, а так же данные об этих файлах.
Для реализации используется SQL Server 2008 и Visual Studio 2010 на языке C#. Для начала были созданы классы для загрузки и выгрузки файлов
Далее часть кода с загрузкой файла в базу
Ну и попытка его скачать
Все работает до последнего шага. При попытке скачать вылетает "DATA NOT EXISTS!" прописанные в GetDataFromBase. Не могу понят где ошибка, надеюсь кто-нибудь поможет. |
||||||||
|
|||||||||
Экскалупатор |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
судя по этому запросы мы хотим достать PDF из таблицы Literatura, где PDF = ... чему? PDF это бинарное поле и для того что бы этот запрос сработал нужно туда забить все содержимое искомого PDF, что само по себе весьма странно. Измените запрос на выборку по какому либо ключу, или по имени. но не по СОДЕРЖИМОМУ файла. К тому же пытаетесь вы его скачивать именно по имени, но это имя в запросе используете для поиска в ТЕЛЕ PDF, т.е. в вашем бинароном поле. должно быть что-то вроде: string selectCMD = string.Format("SELECT PDF FROM Literatura WHERE Name='{0}'", pDFLabel2); Это сообщение отредактировал(а) Экскалупатор - 14.7.2015, 12:18 |
|||
|
||||
Krayshon |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.7.2015 Репутация: нет Всего: нет |
Имя поля в котором содержатся байты называется PDF |
||||
|
|||||
Экскалупатор |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
да именно это я и написал! Но ты пытаешься получить данные не по содержимому файла, а по ИМЕНИ:
а имя в каком поле содержится? тоже в PDF? чет я сомневаюсь. Вот и получается, что ты хочешь достать PDF по имени, но при этом в запросе имя сравниваешь с бинарным полем PDF |
|||
|
||||
Krayshon |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.7.2015 Репутация: нет Всего: нет |
У меня не хранится имя, предлагаете добавить поле или можно работать и с этими данными? |
||||
|
|||||
Экскалупатор |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
предлагаю для начала ознакомится с тем, как работают SQL-запросы. проблема в том, что вы пытаетесь искать в базе PDF, по содержимому этого же PDF, что бы ваш запрос сработал, нужно передать в него в качестве параметра, ВСЕ СОДЕРЖИМОЕ ИСКОМОГО ФАЙЛА. Иными словами, если у нас есть PDF размером 10MB, то для правильного срабатывания вашего SQL-запроса, в него, в выражение 'WHERE PDF = ', нужно передать все эти 10MB. Очевидно, что вы этого не делаете, и отсюда получается что скрипт не работает. Я вам предлагаю искать PDF не по его содержимому, а по каким-то его атрибутам, по id в базе к примеру, или имени или еще чему то. ... Ну или передавать ВСЕГДА ВСЕ тело(содержимое) файла. Правда это похоже на бред в данном случае, потому что вы пытаетесь поднять из базы PDF, передавая в качестве аргумента этот же PDF, спрашивается, нафига вообще делать запрос, если у вас уже есть что вы хотите получить. Так что вам нужно либо изменить запрос, к примеру искать по имени или ключу или еще какому то атрибуту, и если для этого придется изменить структуру таблицы, то да, надо изменить структуру таблицы(добавить нужные поля, заполнять их данными и пр.). Ну или все же использовать ваш запрос правильно и всегда искать PDF передавая весь искомый PDF(хз как подчеркнуть то, что это бред, но дело ваше.) |
|||
|
||||
Krayshon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.7.2015 Репутация: нет Всего: нет |
Вопрос решен, тему можно закрыть
Добавлено через 2 минуты и 4 секунды Спасибо за ответ, сделал практически все так как Вы и написали. |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |