Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > Поиск в наборе даных |
Автор: FreakK 12.3.2007, 01:20 |
Здраствуйте. У меня такой вопрос: есть форма на ней DataGridView, BindingSource, TableAdapter и поле для поиска Мне нужно в наборе найти запись, где значение поля name (строковое) начинаетса или содержыт текст строки srt1. пробовал agentsBindingSource.Find("name",str1); но находит только если значения полностю совпадают... помогите незнаю что делать.... ![]() |
Автор: archimed7592 12.3.2007, 01:52 |
м. б. agentsBindingSource.Find("name",String.Format ("%{0}%", str1))...по крайней мере, в sql запросе должно быть select ... from ... where name = '%bla-bla-bla%' вроде как ![]() |
Автор: FreakK 12.3.2007, 15:53 |
нипошло :'( ![]() |
Автор: mr.DUDA 12.3.2007, 16:16 |
Найти датасет, DataTable, выполнить Select c условием по LIKE '%bla-bla-bla%' |
Автор: FreakK 12.3.2007, 22:56 |
нет мне нужно именно виделить в текущем наборе конкретную запись... а не изменить запрос |
Автор: NET_or_not_NET 13.3.2007, 12:58 |
Поле "name" может быть отсортированно? |
Автор: NET_or_not_NET 13.3.2007, 14:55 | ||||
Не самое изащное решение, но РАБОЧЕЕ! если я конечно правильно понял, что надо, а надо:
оставив текущий набор без изменений... да? я имею ввиду изменений в датагриде (т.е. организовать горячий поиск) если так то : предположим что в Вашем наборе есть как минимум два поля - ourname и idrow (некое id), а также : DataGridView - DataGridView1 BindingSource - BindingSource1 textBox - textBox1 - искомая строка или её часть
замечу dataView1 не привязываем к Гриду (ведь нам не нужно чтобы менялся набор) ![]() ![]() этот код можно использовать как при нажатии на некой кнопке (например "Найти") или при обработке нажатия кнопок в textBox1 будет так называемы "горячий поиск" Возможно правильне будет использовать классы BindingContext и CurrencyManager, надо покапаться! Вариант 2: можно убрать BindingSource1, завязать все на dataView1 и не мучаться Задам вопрос - mr.DUDA а нельзя как нибуть вынести в отдельный блок вопросы по ГридВиев, ведь не всегда (а то и всегда) решение проблем с этим контролом выходит за рамки ВиндовсФормс , это могут быть проблемы конкретно с адаптером или той БД котороя используеться, просто не понятно где задовать вопрос , вроде проблема с контролом а решение может быть с БД, и например назвать тему так "А вот как я мучаюсь с dataGridView..." С Уважением NET_or_not_NET P.S. прошу прощения у FreakK просто не хотелось создавать новую тему! С Уважением NET_or_not_NET |
Автор: Stepan_Lameroff 13.3.2007, 16:49 |
Контрол, работающий(может быть ![]() |
Автор: NET_or_not_NET 13.3.2007, 17:14 | ||||
А можно и так как в премере который выложил Stepan_Lameroff
разница в том что вместо dataView1 и RowFilter используеться DataRow[] dr и датасет.Select и это правильно ![]() ![]() |
Автор: FreakK 17.3.2007, 17:20 |
Пасиба всем вопщем получилось то что нужно)) ![]() |
Автор: mr.DUDA 17.3.2007, 19:05 |
Да падёт на тебя его милостивая тень ![]() |