Member 13191952 Ответов: 2

Фильтруйте данные в datagridview с помощью текстового поля в VB.NET


Привет всем, пожалуйста, кто-нибудь может сказать мне, есть ли способ фильтровать данные из datagridview с помощью текстового поля ?

спасибо.

Что я уже пробовал:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim str As String = "Data Source=;Initial Catalog=user;Persist Security Info=True;User ID=sa;Password="
        Dim con As New SqlConnection(str)
        Dim com As String = "Select DATE ,Login ,Operation ,Nbr_docs ,tps_traite ,moy_doc_hr ,moy_sec_doc ,taux_err   from AWB_CHQ_RETOUR "
        Dim Adpt As New SqlDataAdapter(com, con)
        Dim ds As New DataSet()
        Adpt.Fill(ds, "AWB_CHQ_RETOUR")
        DataGridView1.DataSource = ds.Tables(0)
    End Sub <pre>


это код, который я использую для poulate DatagridView , и у меня есть шесть кнопок, похожих на эту, которые заполняют мою datagrid из других таблиц .

2 Ответов

Рейтинг:
8

Maciej Los

Есть несколько способов достичь этого:
1) использование фильтра по набору данных / DataTable через Выбрать[^] метод.
Видеть:
Фильтрация и сортировка в наборах данных[^]
Как: фильтрация и сортировка непосредственно в таблицах данных[^]

2) Использование Способ фильтрации[^] для BindingSource (Caroline - CHill60[^] уже упоминалось об этом методе)

3) Использование SqlCommand для захвата отфильтрованных данных из базы данных
Вы должны использовать тот же код, что и для заполнения данных в DataGridView. Единственное отличие заключается в том, что SELECT заявление.

SELECT DATE ,Login ,Operation ,Nbr_docs ,tps_traite ,moy_doc_hr ,moy_sec_doc ,taux_err
from AWB_CHQ_RETOUR
WHERE Login = 'SomeLoginHere'


4) Использование Linq to DataSet[^]
Видеть:
Примеры LINQ to DataSet[^]
101 образцы LINQ в C#[^]
Создание DataTable из запроса (LINQ to DataSet)[^]

DataTable dt = DirectCast(DataGridView1.DataSource, DataTable)
Dim qry = dt.AsEnumerable() _
  .Where(Function(x) x.Field(Of String)("Login")="SomeLoginHere")
Dim boundTable As DataTable = qry.CopyToDataTable
DataGridView1.DataSource = boundTable


CHill60

Спасибо, что подобрал это Мацей. 5'd

Maciej Los

Спасибо, Кэролайн.

Member 13191952

спасибо за Вашу помощь, я добавил условие Where в команду select where My Column like Textbox2.. и это работает спасибо

Maciej Los

Всегда пожалуйста.

Рейтинг:
0

Member 13191952

Правда ! Оооо

CHill60

Да, действительно. Это не служба написания кода.
2-я ссылка из этого списка приведет вас к Стоимость фильтров столбцов в элементе управления datagridview - визуальный основной .Чистая[^] который явно фильтрует данные из datagridview с помощью текстового поля-что, по-видимому, вы и хотите сделать.

Member 13191952

Я уже видел это, но я не хочу использовать sql-команду в текстовом поле , я хочу просто отфильтровать то, что отображается в DataGridview

Member 13191952

Я уже видел это, но я не хочу использовать sql-команду в текстовом поле , я хочу просто отфильтровать то, что отображается в DataGridview

CHill60

"Я уже видел это" - есть 173 000 результатов по этой ссылке!
Вам не обязательно читать их все. 2-я ссылка использует .Filter метод.

Member 13191952

но int текстовое поле они используют select from a table и я не хочу использовать это то что я хочу это просто фильтрация отображаемых данных непосредственно в gridview

CHill60

Нет, не знают. Они используют

source1.Filter = "[Item Code] = '" & TextBox1.Text & "'"
Source1 является источником привязки для datagridview. То есть, как вы фильтр элемента управления datagridview.

Member 13191952

Я понимаю, но я связываю Datagridview с разными кнопками, которые связаны с разными таблицами в моей базе данных , так как я могу указать источник привязки

CHill60

Я отредактировал свое решение со ссылкой на полное решение

Member 13191952

это не то , что я хочу , моя datagrid не привязывается к источнику данных , я использую много sql-команд для привязки, поэтому, когда я компилирую, у меня уже нет столбцов, пока я не нажму на кнопку

CHill60

Вот что я тебе скажу: почему бы тебе не воспользоваться Улучшить вопрос ссылка для публикации кода, который вы используете для заполнения DataGridView, потому что я не могу догадаться, в чем ваша проблема

Member 13191952

Я обновляю его

Maciej Los

Google всегда является хорошей альтернативой.