0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
1

Сравнение данных из ячеек DataGridView на двух разных формах

08.05.2012, 21:40. Показов 4568. Ответов 16
Метки нет (Все метки)

Есть 2 формы, на одной есть DataGridView и на второй - DataGridView. Нужно сравнить данные из определенной колонки в DataGridView на одной форме с данными определенной колонки на другой форме, и если есть одинаковые - окрасить строки, в которых попадаются эти одинаковые ячейки, в другой цвет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2012, 21:40
Ответы с готовыми решениями:

Передача данных между datagridview на разных формах
Доброго времени суток. У меня вопрос, я использую таблицу Excel как базу данных которую правлю...

Сравнение двух ячеек из разных файлов
Здравствуйте! Есть 2 разных файла, в которых необходимо сравнить столбцы с номерами основных...

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

Сравнение данных из двух разных файлов Excel
Добрый день, форумчане! До этого не имел дело с VBA. Начинаю только изучать. Начальство...

16
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
10.05.2012, 08:58 2
Сравнивать построчно? т.е. 1 строка 1 таблицы сравнивается с 1 строкой 2 таблицы? или искать совпадение по всей таблице?
1
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
10.05.2012, 13:25  [ТС] 3
допустим у меня есть 2 формы, 1ая - Журнал заявок, 2ая - Водители(файлы со скринами прикреплены), на форме "Журнал заявок" в таблице 4 колонку - "ФИО водителя" нужно сравнить с 3ей колонкой "ФИО водителя" на форме "Водители", т.е. при нажатии на кнопку "Показать свободных водителей" на фоме "Водители", строка со свободными водителими(т.е те которых нет на форме "Журнал заявок") должны окраситься в зеленый цвет, а строка с занятыми(т.е. те которые есть и на одной и на другой форме в таблицах) - красным цветом
Миниатюры
Сравнение данных из ячеек DataGridView на двух разных формах   Сравнение данных из ячеек DataGridView на двух разных формах  
0
19 / 18 / 1
Регистрация: 15.11.2011
Сообщений: 54
10.05.2012, 14:06 4
Вам нужно сравнивать не поля "ФИО водителя", а табельный номер, имхо.
У вас данные храняться только в гридах? Табличек нет? Заведите таблички, создайте для них вью с фильтрами по водителю или пройдитесь по табличке заявок накладывая фильтр по водителям.
А у вас вопрос по алгоритму сравнения или как красить?
1
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
10.05.2012, 14:47 5
Самый простой способ решения в лоб: Делаешь двойной цикл (один вложен в другой) во внешнем берешь данные из первой таблицы, во внутреннем сравниваешь со второй таблицей и если есть совпадения окрашиваешь в нужный цвет. Если нужно решение в коде выкладывай проект.
1
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
10.05.2012, 16:42  [ТС] 6
Цитата Сообщение от intacto Посмотреть сообщение
Вам нужно сравнивать не поля "ФИО водителя", а табельный номер, имхо.
У вас данные храняться только в гридах? Табличек нет? Заведите таблички, создайте для них вью с фильтрами по водителю или пройдитесь по табличке заявок накладывая фильтр по водителям.
А у вас вопрос по алгоритму сравнения или как красить?
по сравнению
0
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
10.05.2012, 17:19  [ТС] 7
Цитата Сообщение от PAnT0P Посмотреть сообщение
Самый простой способ решения в лоб: Делаешь двойной цикл (один вложен в другой) во внешнем берешь данные из первой таблицы, во внутреннем сравниваешь со второй таблицей и если есть совпадения окрашиваешь в нужный цвет. Если нужно решение в коде выкладывай проект.
вот, буду очень благодарна, если поможешь
Вложения
Тип файла: rar АРМ Диспетчера ОАО Белдортранс1.rar (8.19 Мб, 44 просмотров)
0
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
10.05.2012, 19:21 8
Сделал по фамильное сравнение и по табельному номеру (закоментирован) выбери что больше нравится
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Row1 As DataGridViewRow, Row2 As DataGridViewRow
        Dim Cell As DataGridViewCell
        Водители_и_закрепленные_ТСDataGridView.DefaultCellStyle.BackColor = Color.Pink
        For Each Row1 In jurn.Журнал_заявокDataGridView.Rows
            For Each Row2 In Водители_и_закрепленные_ТСDataGridView.Rows
                'Сравнение табельного номера
                'If Row1.Cells(5).Value = Row2.Cells(0).Value Then
                'Сравнение фамилий
                If Row1.Cells(3).Value = Row2.Cells(2).Value Then
                    For Each Cell In Row2.Cells
                        Cell.Style.BackColor = Color.GreenYellow
                    Next
                End If
            Next
        Next
    End Sub
PS. Пока делал чуть не застрелился. Неужели Вам удобно использовать смешанные англо-русские имена?
1
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
10.05.2012, 19:45  [ТС] 9
На строчку
VB.NET
1
If Row1.Cells(3).Value = Row2.Cells(2).Value
выскакивает ошибка Operator '=' is not defined for string "Иванов Иван Иванович" and type 'DBNull'.
0
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
11.05.2012, 00:03 10
Добавь проверку на пустое значение
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Row1 As DataGridViewRow, Row2 As DataGridViewRow
        Dim Cell As DataGridViewCell
        Водители_и_закрепленные_ТСDataGridView.DefaultCellStyle.BackColor = Color.Pink
        For Each Row1 In jurn.Журнал_заявокDataGridView.Rows
            If IsDBNull(Row1.Cells(3).Value) Then Continue For
            For Each Row2 In Водители_и_закрепленные_ТСDataGridView.Rows
                If IsDBNull(Row1.Cells(2).Value) Then Continue For
                'Сравнение фамилий
                If Row1.Cells(3).Value = Row2.Cells(2).Value Then
                    For Each Cell In Row2.Cells
                        Cell.Style.BackColor = Color.GreenYellow
                    Next
                End If
            Next
        Next
    End Sub
1
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
11.05.2012, 00:35  [ТС] 11
спасибо огромное =)
0
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
15.05.2012, 20:54  [ТС] 12
Столкнулась с такой проблемой: на некоторые формы выкидывала запросы, сделанные в SQL, на некоторые обычные таблицы. Так вот при добавлении новой записи в таблицу все отлично сохраняет, а в запрос - нет. Подскажите, пожалуйста, реально ли сохранить изменения в запросе или добавить туда новые данные? И как это сделать?
0
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
15.05.2012, 21:40 13
На сколько я помню запросы предоставляет данные только для чтения, это как бы копия основной таблицы с выбранными записями во временную, и при закрытии запроса эта таблица уничтожается.
1
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
15.05.2012, 21:43  [ТС] 14
Цитата Сообщение от PAnT0P Посмотреть сообщение
На сколько я помню запросы предоставляет данные только для чтения, это как бы копия основной таблицы с выбранными записями во временную, и при закрытии запроса эта таблица уничтожается.
т.е я вообще никак не смогу сохранить?
0
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
15.05.2012, 22:08 15
А почему ты сразу не добавляешь новые записи в основную таблицу?
0
0 / 0 / 0
Регистрация: 17.05.2010
Сообщений: 16
15.05.2012, 22:12  [ТС] 16
Цитата Сообщение от PAnT0P Посмотреть сообщение
А почему ты сразу не добавляешь новые записи в основную таблицу?
добавляла, но есть один запрос, который бы мне очень хотелось обновить, через новые записи там не получиться
0
1482 / 577 / 106
Регистрация: 26.03.2012
Сообщений: 1,023
15.05.2012, 22:29 17
Освежил свою память по поводу запросов. Там оказывается можно делать добавление записей. Но сейчас пока подсказать не могу как, т.к. уже давно не занимался БД.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2012, 22:29
Помогаю со студенческими работами здесь

Сравнение данных в двух DataGridView с помощью циклов
Есть два грида, оба заполняются из бд. В одном можно изменять значения и добавлять новые строки....

Связь между тремя datagridview на трёх разных формах
Ребят, нужна ваша помощь. Нужно связать три datagridview на трёх разных формах.. Первая форма...

Сравнение двух столбцов на совпадения ячеек с сортировкой и заменой ячеек
В общем задача. Представьте, есть четыре столбца - два с ценами, два с артикулами. Соответственно,...

Как связать 2 datagridview в 2-х разных формах визуальными средствами Visual Studio C# ?
Имеются 2 связанные таблицы. Как связать 2 datagridview в 2-х разных формах визуальными средствами...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru