Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# и базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
rwety
4 / 4 / 4
Регистрация: 19.09.2008
Сообщений: 71
#1

Фильтрация - C#

09.11.2008, 17:24. Просмотров 2309. Ответов 11
Метки нет (Все метки)

Не работает фильтрация по значения которое в TextBox.

DataTable dt = Session["dataset"] as DataTable;
DataView dv = new DataView(dt);
dv.RowStateFilter = DataViewRowState.CurrentRows;

dv.RowFilter = "ФИО = 'tbfiltr.Text'";
GV.DataSource = dv;
GV.DataBind();
мне кажется дело в строчке dv.RowFilter = "ФИО = 'tbfiltr.Text'";.
кто что подскажет?
http://www.cyberforum.ru/ado-net/thread1798431.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2008, 17:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Фильтрация (C#):

Фильтрация в Datagrid
Здравствуйте, есть следующий код: private void button9_Click(object...

Фильтрация в datagridview
Здравствуйте. Подскажите плз, как отфильтровать через BindingSource.Filter...

Фильтрация данных
Есть у меня две таблицы в БД: Sotrudniki (id_sotr(pk), id_ot(fk) name_sotr) ->...

Фильтрация DataGridView
Добрый день, хочу сделать фильтр в datagridview, после ввода слова в textbox и...

Фильтрация записей
Пытаюсь в dataGridView1 найти определенные элементы(точнее фильтр по записи по...

11
mik-a-el
Администратор
71284 / 40556 / 241
Регистрация: 10.04.2006
Сообщений: 12,670
09.11.2008, 17:53 #2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Цитата Сообщение от rwety Посмотреть сообщение
мне кажется дело в строчке dv.RowFilter = "ФИО = 'tbfiltr.Text'";.
Это фильтрация не по значению в tbfiltr.Text, а по тексту "tbfiltr.Text".
Попробуй так:
dv.RowFilter = "ФИО = '" + tbfiltr.Text + "'";
0
rwety
4 / 4 / 4
Регистрация: 19.09.2008
Сообщений: 71
10.11.2008, 00:04  [ТС] #3
спасибо. так работает
0
Лакшми
44 / 44 / 1
Регистрация: 09.07.2009
Сообщений: 402
Завершенные тесты: 1
05.08.2009, 00:02 #4
Скажите, а как быть, если tbfiltr.Text (см. выше) окажется датой? Я делаю фильтр в обработчике textBox1_TextChanged, чтобы фильтр работал по ходу набора текста. Сначала пользователь выбирает поле в comboBox1, по которому он хочет сделать фильтр (а поле - дата). В обработчике textBox1_TextChanged я пишу что-то вроде:
DataView dv = new DataView(dt);//dt - DataTable
dv.RowFilter = "["+comboBox1.Text+"]"+" LIKE "+"'"+textBox1.Text+"'%";
Это работает для текстовых полей.
Знаю, что к датам это не применимо, а как сделать так, чтобы было применимо?
0
MAcK
Комбайнёр
1570 / 668 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
05.08.2009, 07:04 #5
Проверять какой тип данных и для этого делать свою фильтрацию
0
Лакшми
44 / 44 / 1
Регистрация: 09.07.2009
Сообщений: 402
Завершенные тесты: 1
05.08.2009, 12:21 #6
Я так тоже думала. Просто хотелось универсальности для пользователя, чтобы для него не было разницы - какой там тип данных. Ну, если по-другому никак, буду так делать.
0
MAcK
Комбайнёр
1570 / 668 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
05.08.2009, 12:45 #7
А для пользователя и не будет разницы ... Как вы загружаете данные в Комбо?
0
Лакшми
44 / 44 / 1
Регистрация: 09.07.2009
Сообщений: 402
Завершенные тесты: 1
05.08.2009, 12:47 #8
Считываю заголовки DataGridView.
0
MAcK
Комбайнёр
1570 / 668 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
05.08.2009, 13:23 #9
Ну так делаёте структуру, одно имя заголовка, другое тип. в окмбобоксе DisplayMember заголовок, в ValueMember тип.

Добавлено через 16 секунд
SelectedValue будет Ваш тип
0
Лакшми
44 / 44 / 1
Регистрация: 09.07.2009
Сообщений: 402
Завершенные тесты: 1
05.08.2009, 13:29 #10
Я в принципе собиралась сделать через try catch, где будет ошибка, там дата. У меня кроме текстовых и датных других полей нет.
0
MAcK
Комбайнёр
1570 / 668 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
05.08.2009, 13:35 #11
НЕ ПРАВИЬНЫЙ ПОДХОД.
Будет правильно, если послушаетесь моего совета.
В крайнем случае: если у вас количество полей одинаковое, то смотрите по SelectIndex в комбобокс и вычисляйте какие это данные
0
Лакшми
44 / 44 / 1
Регистрация: 09.07.2009
Сообщений: 402
Завершенные тесты: 1
10.09.2009, 13:03 #12
Сделала так: в комбобокс заношу имена только текстовых полей. Еще у меня и стоят 3 парных поля с датами "с"-"по". И теперь можно, например выбрать по фамилии (текстовое поле), а потом отобрать, например по дням рождения этих людей в период с такого-то по такое-то. Очень все чудесненько получается!
0
10.09.2009, 13:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2009, 13:03
Привет! Вот еще темы с решениями:

Фильтрация в dataGridView
если я заполняю таблицу так: OleDbConnection connection = new...

Фильтрация данных
Здравствуйте, есть datagridview для вывода данных и два ComboBox с помощью...

Фильтрация ComboBox-ом
Понадобилось создать базу в MS SQL с С#. Поместил на форме 2 комбо привязал их...

Фильтрация BindingSource
Подскажите, у меня на форме есть комбобоксы. С помощью BindingSource.Filter я...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru