![]() |
|
Модераторы: gambit |
![]()
|
|
| LeeleeKeelee |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.11.2008 Репутация: нет Всего: нет |
Здравствуйте!
C# Создал базу данных в Аксессе, провёл связи между таблицами так, как мне надо, создал запрос на выборку - тоже такой, какой мне нужен. Выборка(либо по И, либо по ИЛИ) идёт по 7 полям(параметрам). Так вот, у меня параметры зависят от наполнения текстбоксов в программе, но когда текстбокс пустой - прога вылетает с эксепшном "Параметр такой-то не имеет значения по умолчанию" - ругается так всякий раз, когда один(или несколько) текстбоксов пустые. Запрос выглядит так:
При помощи ArrayList я смог реализовать правильную подстановку частей запроса(в зависимости о того - пустой(ые) текстбокс(ы) или нет), но только во второй половине(после WHERE), но до WHERE это сделать, помоему, нереально(изза геморроя с записями в скобках). Так вот, вопрос такой - как заставить её корректно работать(корректно и без проблем делать выборку по набранным параметрам) при некоторых пустых текстбоксах? Это сообщение отредактировал(а) LeeleeKeelee - 13.2.2009, 22:32 |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
LeeleeKeelee,
Привет. Твой хитрый запрос не осилил, много букв. Но раз такой запрос есть, то значит он тебе нужен. Твоя проблема, как я понял, в том что запрос может содержать в себе от одного до семи параметров на выборку. Но эти параметры пользователь может выбрать либо все либо часть. И в этом случае у тебя вылетает исключение. Одним из вариантов решения данной проблемы, по моему, являеться следующее: - тебе надо сделать таблицу параметров и запросов. Т.е. в табличной форме отобразить как выглядит запрос при наличии того или иного параметра. (на бумаге, для наглядности) - на основании этой таблицы написать достаточное кол-во выражений if{} elseif{} else{}, возможно с многоступенчатыми вложениями условий для выводы правильного запроса, содержащего только указанные в комбобоксах параметры. (другими словами проверять комбобоксы: выбран параметр - запрос такой, не выбран смотри на следующий комбобокс и т.д.) или вместо if подумать над select case. Подумай в этом направлении. Успехов. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| LeeleeKeelee |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.11.2008 Репутация: нет Всего: нет |
Спасибо
Мысль про if else у меня была, но это адская жесть(этож сколько их нужно написать, да ещё и чтобы не перепутать ничего)! ) Просто думал, что есть решение попроще) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |