2016-01-24 2 views
0

Я хочу фильтровать данные в datagridview с помощью combobox и кнопки. Я уже много часов искал и пробовал некоторые коды, но у меня всегда была ошибка.фильтрация данных в datagridview с помощью combobox и кнопки

Я был бы благодарен, если бы кто-нибудь мог сказать мне лучший и простой способ программирования.

Вот картина формы

Form

Я хочу, чтобы фильтровать данные в DataGridView путем выбора либо уровня год или название раздела и нажмите кнопку Show. Таким образом, данные, оставшиеся в datagridview, должны быть только данными с выбранным уровнем года или названием раздела. Я пытаюсь использовать этот код сейчас, но его ни давая мне привести ни ошибки

private void btnShow_Click(object sender, EventArgs e) 
{ 
    BindingSource show = new BindingSource(); 
    datagridview1.DataSource = show; 
    show.Filter = "ColLevel ='"+cmbYearLevelF.Text+"' OR ColSectionNumber ='"+cmbSectionNameF.Text+"'"; 
} 
+1

Вы должны сначала установить DataSource BindingSource. Чтобы фильтровать, строки заключены в апострофы и численные значения без апострофов. Поэтому, если ColLevel является int, используйте «ColLevel =» + cmbYearLevelF.Text и т. Д. –

+0

Форма на картинке - как сетка заполняется данными, которые мы видим? –

+0

@IvanStoev есть кнопка create, которая вызывает другую форму с текстовыми полями, чтобы заполнить и поместить данные в datagridview. – mijerg911

ответ

0

Вам просто нужно установить фильтр на существующий BindingSource, как это:

existingBindingSource.Filter = "ColLevel = '2'"; 

Hard сначала введите код, чтобы убедиться, что он работает.

К Существующий Я имею в виду BindingSource, который в настоящее время подключен к DataGridView.

+0

не работает. возможно, что-то не хватает в объявлении исходного кода привязки, но я не знаю, что это такое. – mijerg911

+0

Объект BindingSource должен уже существовать ... или вы не увидите никаких данных. Он уже должен быть объявлен и инстанцирован. –

Смежные вопросы