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

Поиск в DataGridVew по определенному столбцу и по части текста

24.02.2021, 18:39. Показов 1182. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые!
Подскажите пожалуйста, как реализовать поиск в DataGridView по строке из TextBox.
На форме 2 текстбокса и кнопка поиска. В DGV 2 столбца, при вводе текста в первый текстбокс и по нажатию кнопки Поиск - осуществлять поиск по первому столбцу.
При вводе во второй текстбокс и нажатию Поиск - выполнять поиск по 2 столбцу.
Желательно, при нахождении результата - убирать лишние строки, т.е. отображать только те строки, в которых есть совпадения.
И второй вопрос, как собственно осуществлять поиск по части текста?)

Пока поиск реализовал так, но в таком случае поиск выполняется по всей таблице, а не в конкретном столбце:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void ncSearchButton_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.RowCount; i++)
 
                for (int j = 1; j < dataGridView1.ColumnCount; j++)
                {
                    if (dataGridView1.Rows[i].Cells[j].Value == null)
                    {
                        break;
                    }
 
                    if (searchNcTextBox.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
                    {
                        dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
                        dataGridView1.FirstDisplayedScrollingRowIndex = i;
                        break;
                    }
 
                }
        }
Миниатюры
Поиск в DataGridVew по определенному столбцу и по части текста  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2021, 18:39
Ответы с готовыми решениями:

DataGridView. Поиск по определенному столбцу
Делаю прогу по взаимодействию с БД. Хочу сделать поиск в опредеоенном столбце (где совподает хоть 1-но слово).Но возникла проблема . Вот...

Поиск по базе данных - по определенному столбцу
Подскажите как организовать поиск по определенному столбцу базы данных и потом присвоить найденное значение переменной.

Поиск текста в XML-файле по определённому правилу
Есть файл xml. Есть файл txt1 содержит текст 00.00.00.00 В xml нужно найти первое вхождение 00.00.00.00 и сохранить в файл txt2 11.22.33.44...

5
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
24.02.2021, 18:41  [ТС]
Сразу отмечу как данные попадают в DataGridView, данные поступают по запросу из бд.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        private void AllOrgForm_Load(object sender, EventArgs e)
        {
            var con = new SqlConnection(AppConfig.ConnectionString);
            con.Open();
            var str = $"SELECT * from nc order by nc";
            var cmd = new SqlCommand(str, con);
            string str1 = cmd.CommandText;
            SqlDataReader reader = cmd.ExecuteReader();
 
            //заполнение таблицы всех организаций
            List<string[]> data = new List<string[]>();
            while (reader.Read())
            {
                data.Add(new string[2]);
                data[data.Count - 1][0] = reader[0].ToString();
                data[data.Count - 1][1] = reader[1].ToString();
            }
            reader.Close();
            con.Close();
            foreach (string[] s in data)
                dataGridView1.Rows.Add(s);
            dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; //Несколько строк в ячейке
        }
0
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
25.02.2021, 08:52  [ТС]
Код поиска полностью переписал совместно с Kazbek17, огромная благодарность за помощь!
Мб кому понадобится, да и для себя на будущее оставлю код:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
namespace Project_Csharp
{
    public partial class AllOrgForm : Form
    {
        public AllOrgForm()
        {
            InitializeComponent();
        }
        private void AllOrgForm_Load(object sender, EventArgs e)
        {
            var str = "SELECT nc as [Л/С], executor as [Организация] from nc order by nc";
            dgv.DataSource = Sql.RunQuery(str);
        }
 
        private void txSearchNc_TextChanged(object sender, EventArgs e)
        {
            TextBox tx = sender as TextBox;
            string str = "";
            if(txSearchNc.TextLength != 0)
            {
               str = $"SELECT * from nc where nc like '%{txSearchNc.Text}%'";
            }
            else
            {
                str = $"SELECT * from nc where executor Like'%{txSearchOrg.Text}%'";
            }
            
            dgv.DataSource = Sql.RunQuery(str);
        }
        private void AllOrgButtonBack_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
25.02.2021, 13:55
Ваш код, увы, не универсален: только по возрастанию и только по одной колонке.
Сделайте код универсальным, вынесите его в метод репозитория. Метод принимает три параметра: SQL-запрос и два дополнительных параметра: имя поля, по которому сортировать, и признак asc/desc. Конечно, придется пошуршать мозгами, но оно того стоит !
Из любой формы для любой сетки можно будет вызывать этот метод и наслаждаться

Вот такой код действительно может быть весьма полезным для многих.
0
1 / 1 / 0
Регистрация: 14.02.2021
Сообщений: 97
25.02.2021, 14:24  [ТС]
MsGuns, Думаю в моем случае это не особо нужно, хотя идея интересная.
В моем случае такой поиск по dgv выполняется только в одной форме и всего по 2 столбцам, вышеописанного функционала вполне хватает.
Он нужен лишь как "справочник", чтобы не держать в голове числовые значения лицевых счетов абонентов.
Да и код не перегружен, легко понять где что происходит.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
25.02.2021, 16:13
Цитата Сообщение от detrop Посмотреть сообщение
Мб кому понадобится, да и для себя на будущее
Имелась в виду эта реплика
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2021, 16:13
Помогаю со студенческими работами здесь

Поиск части текста в диапазоне ячеек и замена этого текста на найденное соответсвие
Имеется список адресов, которым нужно присвоить в отдельной ячейке название микрорайона. Есть отдельная таблица с названиями микрорайонов и...

Сортировка таблицы по определенному столбцу
Здравствуйте, уважаемые программисты. Подскажите, пожалуйста, как отсортировать таблицу (с помощью макроса) по определенному столбцу,...

Сортировка в Excel по определенному столбцу
Ребят, короче я создал отчет в Excel. Мне нужно сделать сортировку по столбцу кол-ва выполненных заданий. По убыванию. Затем удалит...

Автофильтр по определенному столбцу DBGrid
Есть две таблицы Excel. Они загружаются в два DBGrid на форме. Общего у этих двух таблиц только колонки: &quot;ФИО&quot;,...

Сортировка данных в Excel по определенному столбцу
Не подскажите, как организовать сортировку ячеек в Excel c указанием определенного столбца? (Просто по кнопке)


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru