|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
|||||||||||
Фильтрация данных в БД по нескольким полям (TextBox, SQL)21.04.2011, 17:49. Показов 13922. Ответов 17
Метки нет (Все метки)
Всем привет.
Имеется приложение, допустим, телефонная книга. В нем несколько текстовых полей (см. скриншот): Осуществлено подключение к БД, данные отображаются в гриде. Задача: Осуществить фильтрацию по различным полям, если пользователь ввел соответсвующие данные в текстовые поля. На данный момент, я написал такой запрос:
Пробовал без строки "OR [Какое-то поле] IS NULL". Запрос, вопреки ожиданиям не возвращает данных. Подскажите как быть, как осуществляется такая фильтрация? P.S. Как говорится, не хотел "городить огород" по типу:
Заранее спасибо всем ответившим.
0
|
|||||||||||
| 21.04.2011, 17:49 | |
|
Ответы с готовыми решениями:
17
Фильтрация данных по нескольким полям Фильтрация в БД по нескольким полям Фильтрация по нескольким полям |
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
|
| 22.04.2011, 16:37 [ТС] | |
|
Может быть не через SQL делать, а через LINQ?
P.S. Неужели никто не реализовывал такую фильтрацию?
0
|
|
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
||||||
| 22.04.2011, 18:27 | ||||||
|
Maden, я честно говоря не очень понял, что ты за запрос хочешь построить.
А так по-моему это просто делается
1
|
||||||
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
|
| 22.04.2011, 18:53 [ТС] | |
|
Eugene22, нет к сожалению - не работает.
Пробовал по-разному. Жесткое "=" точно не работает. Если писать выражения с маской "%" то тогда возможен показ не всех строк. В БД имеются столбцы со значением NULL... Вопрос даже не в том, как переделать этот запрос, а как в принципе должно все быть.
0
|
|
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
||||||
| 22.04.2011, 19:06 | ||||||
|
Вроде бы должно работать, а что в качестве базы используется?
ну вот я у себя использовал такой код
1
|
||||||
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
||||||
| 22.04.2011, 19:22 [ТС] | ||||||
|
В качестве базы Access.
Создаю DataSet, заполняю его через DataAdapter. В качестве запроса в Access передаю вот ту строку. Добавлено через 12 минут Eugene22, проблема в том, что некоторые поля могут оказаться незаполненными и поэтому выпадет исключение... Вот смотри, как работает этот запрос. Ввел, допустим, я в поле "фамилия" - текст, остальные поля пустые. Мой запрос:
Если я не пропишу в запросе, скажем, "OR [Фамилия] IS NULL", то запрос не вернет результатов, и будет вообще неадекватно вести себя, натыкаясь на NULL
0
|
||||||
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
||||||
| 22.04.2011, 19:27 [ТС] | ||||||
|
Запрос типа:
0
|
||||||
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
|
| 28.04.2011, 18:04 [ТС] | |
|
Неужели никто не сталкивался с подобным? Или это секрет?
0
|
|
|
Почетный модератор
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 28.04.2011, 19:31 | |
|
А что, обязательно фильтровать прям вот по всем полям, какие есть?
Встречный вопрос. Конструкция LIKE разве работает без маски? Ведь если не использовать "%", смысл самого LIKE? ___________________ Другой момент. Если все уперлось в Null, может при вводе данных в незаполненных полях ставить пробел или прочерк?
1
|
|
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
|
| 28.04.2011, 19:41 [ТС] | |
|
Памирыч, да ты прав
Сегодня после недолгих экспериментов понял, что основная моя проблема - это значения NULL, на которые натыкается запрос. Выхода, предполагаю, 2: либо "конвертировать" значения NULL в что-либо еще, либо вручную в БД поставить - как ты предложил - какой-л. символ. Да, LIKE не имеет большого значения без подстановочных символов.
0
|
|
|
Почетный модератор
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 28.04.2011, 20:46 | |
|
Сейчас создал проект и базу, все это опробовал.
Если нет какого-то критерия, например, номера телефона, то этот человек вовсе не попадает в фильтр, все как ты и говорил. Я конечно влепил туда дефисы, но это не дело. Ведь может случиться так, что телефон появился, пользователь стирает прочерк и готовится записать номер, но тут звонит телефон и ему сообщают что он больше в этой организации не работает. Он оставляет поле пустым и закрывает программу, сохранив пустоту в ячейке. Я к тому, что надо будет или поставить в программу какой то контроль на нули, либо пересматривать фильтрацию.
1
|
|
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
|
| 29.04.2011, 16:55 [ТС] | |
|
Да... походу придется пересматривать подход к фильтрации...
Порывшись в инете - я так и не нашел решения. Подумаю еще, может быть что-нибудь "этакое" сворганю... P.S. Еще раз спасибо всем за ответы.
0
|
|
|
111 / 111 / 5
Регистрация: 14.01.2011
Сообщений: 130
|
||||||
| 06.05.2011, 15:37 [ТС] | ||||||
|
Я все-таки нашел ответ на свой вопрос.
Кому интересно, запрос теперь будет выглядеть так:
1
|
||||||
|
2 / 2 / 0
Регистрация: 21.03.2012
Сообщений: 46
|
|||||||
| 27.03.2012, 07:53 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 2
|
|
| 05.08.2012, 11:13 | |
|
А можно ли этот отрывок запроса перевести в linq в vb.net. я столкнулся с подобной проблемой но я пишу на linq используя datacontext. пытался найти конвертеры но они либо платные либо слишком замудренные. Прошу помочь. Заранее спасибо
0
|
|
|
0 / 0 / 0
Регистрация: 01.05.2015
Сообщений: 1
|
||||||
| 07.01.2018, 12:28 | ||||||
|
Пример поиска оборудования по одному или нескольким параметрам.
WinForm + ACCESS
0
|
||||||
|
1712 / 1375 / 165
Регистрация: 25.07.2015
Сообщений: 2,540
|
|
| 07.01.2018, 17:58 | |
|
Galactus, жесть : тема почти 6-летней давности + скрипт на Шарпе на форуме VB.NET.
Это ж на до так было заморочиться ![]() НГ + Рождество видимо удались.....
1
|
|
| 07.01.2018, 17:58 | |
|
Помогаю со студенческими работами здесь
18
Фильтрация по нескольким полям Windows Form и база данных Sql фильтрация по нескольким столбцам Фильтрация грида по нескольким полям одновременно Фильтрация по нескольким полям как в интернет магазинах Фильтрация по нескольким полям разделенной формы Access 2007 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|