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

Поиск в datagridview(заполненной из бд access)

03.04.2010, 23:37. Показов 7493. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!...
Я выполняю программу-справочник, в которой есть datagridview, заполняемая из базы данных access,...мне нужно реализовать поиск по таблице, по первому столбцу( название столбца "код"), сделать можно это способами: либо просто выделять найденную строку, либо создать поля для ввода поиска и при нажатии на кнопку вся строка заносилась к примеру в текстбокс,..(если есть еще более простой способ какой то, пожалуйста напишите)....дело в том, что изучаю C# сов совсем немного и понять как это реализовать пока не могу, помогите пожалуйста, заранее ОГРОМНОЕ спасибо!)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2010, 23:37
Ответы с готовыми решениями:

Поиск в Access по информации введенной в DataGridView
Всем привет) Создал форму, в нее поместил DataGridView(1), которую связал с Access (в Access есть данные об авто: модель, марка и т. д.)....

Поиск по нескольким параметрам в DataGridView с данными из БД Access
Есть задание, но я напишу лишь ту часть которую не могу сделать Нужно сделать программу которая бы фильтровала в DGV людей по пенсионному...

Не работает поиск в dataGridView из БД Access
В общем проблема такова мне нужно произвести поиск в DGW по параметру. Все вроде бы как работает если столбцы созданы в самом DGW, но если...

10
 Аватар для snakes2517
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 5
05.04.2010, 20:02  [ТС]
облазил кучу форумов, но подобного что то мало нашёл, а что нашёл , не смог в этом разобраться...пожалуйста, знающие люди) ..помогите)
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
05.04.2010, 22:29
Лучший ответ Сообщение было отмечено как решение

Решение

посмотри. Но если у тебя база, то может лучше каким запросом найти, а потом уже выделить в гриде. Но
тут я не подсказчик...
Вложения
Тип файла: rar WindowsFormsApplication2.rar (44.1 Кб, 276 просмотров)
4
2 / 2 / 0
Регистрация: 13.02.2009
Сообщений: 28
11.04.2010, 22:03
Вылетает ошибка - NullReferenceException не обработано
в экземпляре объекта не задана ссылка на объект

строка - if (textBox1.Text == dataGridView1.Rows[i].Cells[0].Value.ToString())

Добавлено через 1 час 41 минуту
как реализовать чтобы искало по всей таблице?
добавляю вложенный цикл для столбцов, выдает ошибку..

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool flag = false;
 
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (textBox6.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
                    {
                        dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
                        dataGridView1.FirstDisplayedScrollingRowIndex = i;
                        flag = true;
                        break;
 
                    }
              //  }
            }
                if (!flag)
                    MessageBox.Show("НЕТУ");
отдельно для строк и отдельно для столбцов каждый цикл работает..
1
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
12.04.2010, 08:46
Да вроде работает твой код. Единственно вылетает ошибка, когда ячейка вообще никогда не редактировалась. Если так , введи проверку на NULL
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int i = 0; i < dataGridView1.RowCount; i++)
       {
           for (int j = 0; j < dataGridView1.ColumnCount; j++)
           {
               if (dataGridView1.Rows[i].Cells[j].Value == null) //!!!!!!!!!!!!!!!!!!
               {
              MessageBox.Show("NULL");//!!!!!!!!!!!!!!!!!!!!111
              break;//!!!!!!!!!!!!!!!!!!!!!!!!
               }
              if (textBox1.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
               {
                   dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
                   dataGridView1.FirstDisplayedScrollingRowIndex = i;
                   flag = true;
                   break;
               }               // }           }        }
0
2 / 2 / 0
Регистрация: 13.02.2009
Сообщений: 28
12.04.2010, 09:11
То есть, все ячейки должны быть заполнены? а то у меня первые три строки заполнены, а последняя пустая..
1
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
12.04.2010, 12:00
Последняя строка пустая - это можно в свойствах где то выключить. Покопайся. Я запамятовал.Если вспомню - напишу...
Вот нашел. Сам спрашивал про это
Запрет создания строк dataGridView
2
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
12.04.2010, 15:16
Вот еще одно решение:
C#
1
2
3
4
5
6
7
8
9
10
11
        DataView dv;
        private void button1_Click(object sender, EventArgs e)
        {
            dv = new DataView(tb); // передаем сюда таблицу для поиска
            dv.Sort = "Имя"; // столбец для поиска
            int indexOfFoundRow = dv.Find(textBox1.Text); //получаем индекс найденой строки
            if (indexOfFoundRow == -1)
                Text = "Увы, но объект не найден!";
            else
                dataGridView1.CurrentCell = dataGridView1.Rows[indexOfFoundRow+1].Cells[0];
         }
1
2 / 2 / 0
Регистрация: 13.02.2009
Сообщений: 28
12.04.2010, 15:24
Цитата Сообщение от wwowa Посмотреть сообщение
Последняя строка пустая - это можно в свойствах где то выключить. Покопайся. Я запамятовал.Если вспомню - напишу...
Вот нашел. Сам спрашивал про это
Запрет создания строк dataGridView
спасибо тебе огромное, теперь заработало))))
0
1 / 1 / 0
Регистрация: 25.03.2011
Сообщений: 38
22.10.2011, 15:00
Я вот прописал как вы и сказали но не пойму почему не работает как надо!Помогите пожалуйста!
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "аптекаDataSet.Аптека". При необходимости она может быть перемещена или удалена.
            this.аптекаTableAdapter.Fill(this.аптекаDataSet.Аптека);
            dataGridView1.RowCount = 11;
            for (int i = 0; i < dataGridView1.RowCount; i++)
                dataGridView1.Rows[i].Cells[0].Value = i;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            аптекаTableAdapter.Update(аптекаDataSet);
                    }
 
        private void richTextBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            bool flag = false;
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (dataGridView1.Rows[i].Cells[j].Value == null)
                    {
                        MessageBox.Show("NULL");
                        break;
                    }
 
                    if (textBox1.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
                    {
                        dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
                        dataGridView1.FirstDisplayedScrollingRowIndex = i;
                        flag = true;
                        break;
                    }
                }
            }
            if (!flag)
                MessageBox.Show("НЕТУ");
        }
 
        
 
 
        }
    }
Вложения
Тип файла: zip База данных по аптеке.zip (341.6 Кб, 94 просмотров)
0
1 / 1 / 0
Регистрация: 25.03.2011
Сообщений: 38
22.10.2011, 15:41
Спасибо большое за разъяснение,только тут действительно всё хорошо написано!Всё получилось!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2011, 15:41
Помогаю со студенческими работами здесь

Сохранение данных в Access из DataGridView, и поиск ошибок
Народ я уже который день мучаюсь с заданием. Подскажите как решить. Вот код : using System; using System.Collections.Generic; using...

Добавил в DataGridView таблицу из Access, как сделать поиск не используя BindingNavigator?
Как сделать поиск? Добавлено через 1 минуту с помощью sql-запросов, т.е. помогите написать их

Поиск заполненной ячейки
HELP PLEASE!!! Необходимо в диапазоне B105:B204 найти незаполненную ячейку (если только незаполненная ячейка только одна в этом...

Поиск последней заполненной ячейки
Еще раз здравствуйте. помогите пожалуйста с таким вопросом. Есть формула вида: =ИНДЕКС(A1:D1;;ПОИСКПОЗ(9E+307;A1:D1)) ...

Вывести в сообщении значение последней заполненной ячейки в базе Access
Здравствуйте! Подскажите пожалуйста каким образом с помощью VBA можно вывести в сообщении значение последней заполненной ячейки в базе...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru