Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
1 / 1 / 1
Регистрация: 22.01.2010
Сообщений: 13

Не работает Filter в BindingSource

04.10.2012, 10:57. Показов 5254. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться. Нужно заставить BindingSource отображать только определенные записи, у которых задан идентификатор. Нужное значение хранится в переменной. Пишу следующий код:
C#
1
2
organizationBindingSource.DataSource = db.Organization;
            organizationBindingSource.Filter = String.Format("Org_Id = {0}", ido);
В режиме отладки слежу за BindingSource - в Filter появляется "Org_Id = 100" (например), но все равно выводятся все 83 существующие записи. Пробовала переписывать
C#
1
2
organizationBindingSource.DataSource = db.Organization;
            organizationBindingSource.Filter = "Org_Id = " + ido;
Результат тот же. В чем может быть причина?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2012, 10:57
Ответы с готовыми решениями:

BindingSource игнорирует Filter
Помогите, пожалуйста, справиться с BindingSource.Filter. Не могу понять, что я делаю не так, вот код: BindingSource bs = new...

Использование BindingSource.Filter
Ребята подскажите пожалуйста... Есть датагрид к ней подключена таблица и использую метод ниже для поиска...работает корректно... ...

DataCridView и BindingSource.Filter
Есть DataCridView с набором данных. В нем применяется фильтрация Запрос4BindingSource.Filter = строка для фильтра (Картинка с...

2
9 / 7 / 2
Регистрация: 28.09.2012
Сообщений: 16
04.10.2012, 19:10
ulicenok, так не бывает)) У всех работает, а у Вас - нет. Если Вы выводите в DataGridView (или ещё куда), то проверьте, что свойству DataSource вы определи BindingSource, который и фильтруете.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FbConnectionStringBuilder cb = new FbConnectionStringBuilder();
cb.Database = @".\DB\EMPLOYEE.FDB";
cb.ServerType = FbServerType.Embedded;
cb.ClientLibrary = @".\lib\fbembed.dll";
cb.UserID = "SYSDBA";
cb.Password = "masterkey";
 
FbConnection fconn = new FbConnection(cb.ToString{});
FbDataAdapter fa = new FbDataAdapter("SELECT * FROM employee", fconn);
BindingSource bs = new BindingSource();
DataSet ds = new DataSet();
fa.Fill(ds);
bs.DataSource = ds.Tables[0];
DataGridView1.DataSource = bs;
 
bs.Filter = "LAST_NAME = 'Young'";
//bs.Filter = "DEPT_NO = 621";
Этот код замечательно отрабатывает то, что от него просят.

Попробуйте привести сюда свой пример использования BindingSource, чтобы можно было помочь Вам найти ошибку в Вашем же коде.
0
1 / 1 / 1
Регистрация: 22.01.2010
Сообщений: 13
05.10.2012, 13:10  [ТС]
Вот выдержка из кода дизайнера формы:
C#
1
2
3
this.org_NameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.organizationBindingSource, "Org_Name", true));
 this.organizationBindingSource.DataSource = typeof(ElmiraNew.Organization);
            this.organizationBindingSource.Filter = "";
Часть кода форма, отвечающая за поиск:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private DataClassesVIGDataContext db = new DataClassesVIGDataContext();
        public long ido;        
 
 private void Find_Click(object sender, EventArgs e)
        {
                Table<Telephones> Temp = db.GetTable<Telephones>();
                if (Temp.Any(phone => phone.Tel_Num == System.Convert.ToDecimal(this.STel_Num.Text)))
                {
                    ido = (from t in db.Telephones
                           where t.Tel_Num == System.Convert.ToDecimal(this.STel_Num.Text)
                           select t.Org_Id).First();
                    organizationBindingSource.DataSource = db.Organization;
                    organizationBindingSource.Filter = "Org_Id = " + ido;
                    telephonesBindingSource.DataSource = organizationBindingSource;
                    telephonesBindingSource.DataMember = "Telephones";
                    Rubricator_bindingSource.DataSource = db.Rubricator;
                    Managers_bindingSource.DataSource = db.Managers;
                    publication_bindingSource.DataSource = db.Publication;
                    type_bindingSource.DataSource = db.PublicType;
                }
        }
Остальной код к Binding не обращается. Хелп, хелп, хелп, а то меня съедят((

Добавлено через 7 минут
Есть! И без фильтра все гут, спасибо доброму человеку с другого форума, ткнул носом:
C#
1
organizationBindingSource.DataSource = db.Organization.Where(p => p.Org_Id == ido);
Урась, теперь меня пока не съедят
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2012, 13:10
Помогаю со студенческими работами здесь

BindingSource.Filter и Application.Run
Появилась очень странная проблема, смысл которой я никак не могу понять. Делаю простой фильтр с использованием комбобокса в...

BindingSource.Filter в БД MySQL по времени
Доброго времени суток! Пытаюсь реализовать фильтр по времени в dataGridView BindingSource bind = new BindingSource(); DataSet DS =...

BindingSource Filter - Сравнить два Int32
Надо сравнить два значения, оба в Int32. Этот код работает, сравнивает и правильно выдает, но теперь я немогу ничего добавить в БД,...

Фильтрация данных через BindingSource.Filter
Необходимо произвести поиск сразу по нескольким столбцам типа int и string. Данный запрос работает только со столбцами типа string. ...

Фильтр по DataGrid: числовые значения в BindingSource.Filter
Подскажите как сделать чтобы BindingSource.Filter воспринимал числовые значения? private void textBox10_TextChanged(object sender,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru