Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
1

DataGridView и фильтрация данных. Как реализовать средствами VB.net?

29.11.2018, 16:18. Показов 2497. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, коллеги!

На форме DataGridView с заполненными данными.
Столбец 0 - названия фруктов (названия уникальные, повторяющихся нет)
Столбец 1 - цена
Столбец 2 - количество на складе.

Соответственно видны все строки.
Есть некое значение, например "яблоко".
Задача: средствами кода VB.net оставить в таблице видимой только строку содержащую в столбце 0 искомое значение, остальные скрыть.
При этом желательно, что бы и размер Form1.DataGridView1.Rows.Count был равен 1. (или 0, если искомого значения нет в таблице)
Это вообще возможно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2018, 16:18
Ответы с готовыми решениями:

DataGridView, как реализовать добавление данных
Собственно мой вопрос. Начинаю осваивать работу с формами, textbox listbox button все вобщем то...

Фильтрация данных в DatagridView
Нужно реализовать в Datagridview возможность, по необходимости фильтровать в моем случае "Заявки"...

Фильтрация данных с DataGridView
Следующий код выдает ошибку "№ абонента"- столбец в базе имеет тип счетчик string s = "№...

Фильтрация данных в datagridview
Добрый день, есть dgv заполненный данным, хочу его отфильтровать, написал следующий код: private...

7
Лень — мое второе и
3224 / 2413 / 686
Регистрация: 28.11.2014
Сообщений: 3,599
Записей в блоге: 3
29.11.2018, 16:20 2
Allleksey, вот тут вроде что-то похожее было Работа с datagridview
0
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
29.11.2018, 16:27  [ТС] 3
Orlangur1991, Не совсем. Меня больше интересует результат с DataGridView аналогичный запросу SELECT в базу данных. Т.е. оставить только строку, содержащую искомое значение или оставить DataGrodView пустым, если значение не найдено.
0
Лень — мое второе и
3224 / 2413 / 686
Регистрация: 28.11.2014
Сообщений: 3,599
Записей в блоге: 3
29.11.2018, 16:37 4
Allleksey, тогда работайте с DataTable, он так же может в Select
0
1505 / 1053 / 146
Регистрация: 01.10.2009
Сообщений: 3,538
Записей в блоге: 1
29.11.2018, 17:54 5
Allleksey, а как данные подключены к DataGridView ?
0
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
29.11.2018, 21:17  [ТС] 6
Orlangur1991, если говорить о DataTable...
Сформирован DataTable. Заполнен данными.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        Dim DT As New DataTable("Reqest")
        Dim DTCol As New DataColumn
        DT.Columns.Add("PosName", GetType(String))
        DT.Columns.Add("PosProduce", GetType(String))
        DT.Columns.Add("PosQuantiti", GetType(Integer))
        DT.Columns.Add("PosUnits", GetType(String))
        DT.Columns.Add("PosPrice", GetType(Double))
 
        oExcelCalc.Workbooks.Open(strSnabFileNameFull)
        DT.Rows.Clear() ' очистка таблицы DT
 
        For intDGVRowIndex = 0 To 10000
            If oExcelCalc.Range("A" & intDGVRowIndex + 6).Value <> "" Then
                DT.Rows.Add()
                DT.Rows(intDGVRowIndex)(0) = oExcelCalc.Range("A" & intDGVRowIndex + 6).Value
                DT.Rows(intDGVRowIndex)(1) = oExcelCalc.Range("E" & intDGVRowIndex + 6).Value
                DT.Rows(intDGVRowIndex)(2) = oExcelCalc.Range("B" & intDGVRowIndex + 6).Value
                DT.Rows(intDGVRowIndex)(3) = oExcelCalc.Range("C" & intDGVRowIndex + 6).Value
                DT.Rows(intDGVRowIndex)(4) = oExcelCalc.Range("D" & intDGVRowIndex + 6).Value
            Else
                Exit For
            End If
        Next intDGVRowIndex
Далее есть переменная, в которой есть данные, по которым нужно отфильтровать содержимое DataTable
VB.NET
1
Dim strSort as String = "Яблоко"
Никак не соображу. Есть 2 вопроса.
Вопрос 1. Как сформировать запрос, что бы отфильтровать по столбцу "PosName"?
Поправьте, если я не прав
VB.NET
1
Dim Result() As DataRow = DT.Select("PosName" = strSort)
Вопрос 2. Как получить результаты и как с ними работать?
По результатам запроса я получаю массив. Судя по всему он двухмерный. Размер один - это количество столбцов, размер второй - количество найденных совпадений.
Как определить размер массива по количеству совпадений, что бы дальше работать с результатом?

Добавлено через 37 минут
Пытаюсь разобраться, почему... В ответ на запрос у меня приходит одномерный массив с запрошенным значением, хотя 5 столбцов в DataTable.

VB.NET
1
2
3
4
            oExcelCalc.Workbooks.Open(Me.DataGridView1.Item(0, intExportFileIndex).Value)
 
                Dim a As String = oExcelCalc.Range("D36").Value 
                Dim Result() As DataRow = DT.Select("PosName = '" & a & "'")
0
90 / 71 / 24
Регистрация: 18.02.2016
Сообщений: 738
30.11.2018, 21:07 7
Цитата Сообщение от Allleksey Посмотреть сообщение
ытаюсь разобраться, почему... В ответ на запрос у меня приходит одномерный массив с запрошенным значением, хотя 5 столбцов в DataTable
попробуй так - ищет то что напишешь в TextBox и скрывает , что не подходит под параметры поиска
VB.NET
1
2
3
4
5
6
7
8
9
  Me.DataGridView1.ClearSelection()
        Dim ind As Boolean = False
        For Each row As DataGridViewRow In DataGridView1.Rows
            For Each cell As DataGridViewCell In row.Cells
                If (cell.FormattedValue).Contains(Me.TextBox1.Text) Then ind = True
            Next
            If ind = False Then row.Visible = False
            ind = False
        Next
0
Лень — мое второе и
3224 / 2413 / 686
Регистрация: 28.11.2014
Сообщений: 3,599
Записей в блоге: 3
30.11.2018, 21:49 8
Allleksey, небольшой пример
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        DataGridView1.AllowUserToAddRows = False
        Dim DT As New DataTable("Reqest")
        'какое-то заполнение данными 
        DT.Columns.Add(New DataColumn("Name", GetType(String)))
        DT.Columns.Add(New DataColumn("Num1", GetType(Integer)))
        DT.Columns.Add(New DataColumn("Num2", GetType(Integer)))
        DT.Columns.Add(New DataColumn("Num3", GetType(Integer)))
        DT.Columns.Add(New DataColumn("Num4", GetType(Integer)))
        For i = 0 To 5
            DT.Rows.Add()
            For j = 0 To 4
                DT.Rows(i)(j) = i + j
            Next
        Next
        'закончили заполнение
        DT.Rows.Add()
        DT.Rows(6)(0) = "Test" : DT.Rows(6)(1) = "3225" : DT.Rows(6)(2) = "755" : DT.Rows(6)(3) = "7" : DT.Rows(6)(4) = "111" 'контрольная строка
        Dim strSort As String = "7" ' текст поиска
        Dim NewDataTable As DataTable = DT.Select("Num3 = '" & strSort & "'").CopyToDataTable 'копируем в новую datatable результаты запроса в изначальной datatable
        DataGridView1.DataSource = NewDataTable 'отображаем результат в DataGridView
    End Sub
1
30.11.2018, 21:49
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2018, 21:49
Помогаю со студенческими работами здесь

Как реализовать импорт данных с файла в DataGridView?
Если таблица с колонками column1.Name = &quot;Id&quot;; column2.Name = &quot;Surname&quot;; column3.Name = &quot;Name&quot;;...

Как реализовать сохранение данных используя DataGridView?
Собсно вопрос по теме. Имеется несколько DataGriedView-ов. Нужно, чтобы после занесения в таблицу...

Фильтрация данных в DataGridView по дате
Необходимо, что бы при нажатии на btn происходила фильтрация данных по дате указанной в textbox....

Фильтрация выводимых в datagridview данных
Здравствуйте. Есть два datagridview, связанные по полю ID. Во тором gride есть колонка содержащая...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как узнать какой процесс блокирует файл или каталог в Windows
bt_guru 23.01.2025
При работе с операционной системой Windows пользователи нередко сталкиваются с ситуацией, когда система отказывается выполнять определенные действия с файлами или каталогами, сообщая, что они. . .
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
Как проверить состояние чекбокса в jQuery. Как работать с чекбоксами
bytestream 23.01.2025
При разработке интерактивных веб-форм часто возникает необходимость программно определять состояние чекбоксов с помощью jQuery. Чекбоксы являются важными элементами пользовательского интерфейса,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru