8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

По значению из столбца 1 дата грида 1 забрать значения из 2 столбца 2 дата грида

14.02.2015, 00:29. Показов 2185. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Суть задачи такова: Нужно взять значение из 8-го столбца первого дата грида, сравнить его с значением 0-го столбца второго дата грида и если они совпадают, в стринговые переменные записать значения 1,2,3-го второго дата грида.
На VBA я делал это так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
 'Забор значений из таблицы заказчик
        FullOptZakazchik.ЗаказчикTableAdapter.Fill(FullOptZakazchik.ModelsDataSet.Заказчик)
        'Перебор значений
        For i = 0 To FullOptZakazchik.ModelsDataSet.Заказчик.Rows.Count - 1
            If ЗаказDataGridView(5, pos).Value = FullOptZakazchik.ModelsDataSet.Заказчик(i)(0) Then
                Imya = FullOptZakazchik.ModelsDataSet.Заказчик(i)(1)
                Fam = FullOptZakazchik.ModelsDataSet.Заказчик(i)(2)
                Otchev = FullOptZakazchik.ModelsDataSet.Заказчик(i)(3)
                Address = FullOptZakazchik.ModelsDataSet.Заказчик(i)(4)
                Exit For
            End If
        Next
Переделал этот код под свой:
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
//Работа с забором значений
                if (parentsDataGridView.RowCount != 0)
                {
                    //Цикл для перебора значений из другой таблицы(Мама)
                    for (int j = 0; j <= school_HelperDataSet.Parents.Rows.Count; j++)
                    {
                        if (сhildrenDataGridView[8, i].Value == school_HelperDataSet.Parents(j),(0))
                        {
                            Mama_Name = Convert.ToString(school_HelperDataSet.Parents[j, 1]);
                            Mama_Fam = Convert.ToString(school_HelperDataSet.Parents[j, 2]);
                            Mama_Otch = Convert.ToString(school_HelperDataSet.Parents[j, 3]);
                            break;
                        }
                        else
                        {
                            label2.Text = "Мама: " + Convert.ToString(сhildrenDataGridView[8, i].Value);
                            break;
                        }
                    }
 
                    //Прогрузка значений в поля просмотра
                    Prosmotr_Mama = Mama_Name + " " + Mama_Fam + " " + Mama_Otch;
                    label2.Text = "Мама: " + Prosmotr_Mama;
                }
                else
                {
                    label2.Text = "Мама: " + Convert.ToString(сhildrenDataGridView[8, i].Value);
                }
Однако это не правильно, где моя ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2015, 00:29
Ответы с готовыми решениями:

Сохранение только определенных строк из дата грида
Здравствуйте. Есть дата грид в который переносятся данные из бд в акцессе. По дата гриду реализован поиск ...

Копирование значений одного дата грида в другой
Добрый день возникла проблемка, после напряжённых 10 часов кодинга и написания большущей проги, мозг кипит не могу понять в чём проблема. ...

Поиск строки в дата грид по значению столбца
Всем привет! Ребят, помогите вот с чем: нужно отскролить строки в датагриде до строки значение в ячейке которой соответствует значению...

23
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
16.02.2015, 10:29  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от blackstar Посмотреть сообщение
Darkvoid, если количество строк разное в таблицах, используйте второй цикл.. создайте цикл в цкле для проверки каждой строчки
оО а именно?
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
16.02.2015, 11:39
типа такого:
C#
1
2
3
4
5
6
7
8
9
10
              for (int i = 0; i < сhildrenDataGridView.Rows.Count; i++)
            {
                    for (int j = 0; i < parentsDataGridView.Rows.Count; i++)
                    {
                        if (сhildrenDataGridView[0, i].Value.ToString() == parentsDataGridView[0, j].Value.ToString())
                       {
                           Mama_Name = parentsDataGridView[1, i].Value.ToString();
                        } 
                     }          
            }
1
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
16.02.2015, 15:01  [ТС]
Цитата Сообщение от blackstar Посмотреть сообщение
типа такого:
Большое спасибо, а то я через try-catch это делал)

Добавлено через 6 минут
Цитата Сообщение от blackstar Посмотреть сообщение
типа такого:
Большое спасибо, а то я через try-catch это делал)blackstar,
Я тут делаю такую штуку:
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//Двойной клик по таблице (вкладка Дети)
        private void сhildrenDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            AnketaSemii AS = new AnketaSemii();
 
            //Индекс текущей строки
            int count = сhildrenDataGridView.CurrentRow.Index;
 
 
            Mama_compare = сhildrenDataGridView[9, count].Value.ToString().Split(' ')[0];
            Papa_compare = сhildrenDataGridView[10, count].Value.ToString().Split(' ')[0];
            MessageBox.Show(Mama_compare);
            MessageBox.Show(Papa_compare);
 
            //Соединение по ID для мамы
            for (int k = 0; k < сhildrenDataGridView.Rows.Count; k++)
            {
                for (int i = 0; k < parentsDataGridView.Rows.Count; k++)
                {
                    if (Mama_compare == parentsDataGridView[0, i].Value.ToString())
                    {
                        I_m = parentsDataGridView[1, i].Value.ToString();
                        F_m = parentsDataGridView[2, i].Value.ToString();
                        O_m = parentsDataGridView[3, i].Value.ToString();
                        V_m = parentsDataGridView[5, i].Value.ToString();
                        T_m = parentsDataGridView[6, i].Value.ToString();
                        A_m = parentsDataGridView[7, i].Value.ToString();
                        R_m = parentsDataGridView[8, i].Value.ToString();
                        D_m = parentsDataGridView[9, i].Value.ToString();
                        S_m = parentsDataGridView[10, i].Value.ToString();
                        //Прогрузка в текстовые поля данных о маме
                        AS.textBox2.Text = F_m;
                        AS.textBox3.Text = I_m;
                        AS.textBox12.Text = O_m;
                        AS.textBox14.Text = V_m;
                        AS.maskedTextBox1.Text = T_m;
                        AS.textBox17.Text = A_m;
                        AS.textBox18.Text = R_m;
                        AS.textBox19.Text = D_m;
                        AS.textBox31.Text = S_m;
 
                        AS.Sost_M = "Информация о маме";
                    }
                    else
                    {
                        AS.Sost_M = "Нету информации о маме";
                        AS.panel1.Visible = false;
                    }
                }
            }
 
            //Соединение по ID для папы
            for (int a = 0; a < сhildrenDataGridView.Rows.Count; a++)
            {
                for (int b = 0; a < parentsDataGridView.Rows.Count; a++)
                {
                    if (Papa_compare == parentsDataGridView[0, b].Value.ToString())
                    {
                        I_p = parentsDataGridView[1, b].Value.ToString();
                        F_p = parentsDataGridView[2, b].Value.ToString();
                        O_p = parentsDataGridView[3, b].Value.ToString();
                        V_p = parentsDataGridView[5, b].Value.ToString();
                        T_p = parentsDataGridView[6, b].Value.ToString();
                        A_p = parentsDataGridView[7, b].Value.ToString();
                        R_p = parentsDataGridView[8, b].Value.ToString();
                        D_p = parentsDataGridView[9, b].Value.ToString();
                        S_p = parentsDataGridView[10, b].Value.ToString();
                        //Прогрузка в текстовые поля данных о маме
                        AS.textBox4.Text = F_p;
                        AS.textBox7.Text = I_p;
                        AS.textBox9.Text = O_p;
                        AS.textBox10.Text = V_p;
                        AS.maskedTextBox2.Text = T_p;
                        AS.textBox8.Text = A_p;
                        AS.textBox6.Text = R_p;
                        AS.textBox5.Text = D_p;
                        AS.textBox1.Text = S_p;
 
                        AS.Sost_P = "Информация о папе";
                    }
                    else
                    {
                        AS.Sost_P = "Нету информации о папе";
                        AS.panel2.Visible = false;
                    }
                }
            }
            AS.Show();
        }
У меня почему-то папу не видит, хотя Papa_Compare принимает значение 2 и вторая запись в таблице есть

Добавлено через 25 секунд
blackstar, получается срабатывает блок Else и пишет нету инфы о папе

Добавлено через 2 часа 9 минут
Этот код ВООБЩЕ НЕ РАБОТАЕТ!!! Он пашет только с одной и только с одной - первой записью, а потом выдает ошибки!!!
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
16.02.2015, 15:41  [ТС]
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//Двойной клик по таблице (вкладка Дети)
        private void сhildrenDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            AnketaSemii AS = new AnketaSemii();
 
            //Индекс текущей строки
            //int count = сhildrenDataGridView.CurrentRow.Index;
            int count = сhildrenDataGridView.SelectedCells[0].RowIndex;
 
            Mama_compare = сhildrenDataGridView[9, count].Value.ToString().Split(' ')[0];
            Papa_compare = сhildrenDataGridView[10, count].Value.ToString().Split(' ')[0];
            MessageBox.Show(Mama_compare);
            MessageBox.Show(Papa_compare);
 
            // TODO: данная строка кода позволяет загрузить данные в таблицу "school_HelperDataSet.Parents". При необходимости она может быть перемещена или удалена.
            this.parentsTableAdapter.Fill(this.school_HelperDataSet.Parents);
            // TODO: данная строка кода позволяет загрузить данные в таблицу "school_HelperDataSet.Сhildren". При необходимости она может быть перемещена или удалена.
            this.сhildrenTableAdapter.Fill(this.school_HelperDataSet.Сhildren);
 
            //Соединение по ID для родителей
            for (int i = 0; i < this.school_HelperDataSet.Parents.Rows.Count/*сhildrenDataGridView.Rows.Count*/; i++)
            {
                /*for (int i = 0; k < parentsDataGridView.Rows.Count; k++)
                {*/
                    //условие для мамы
                if (Mama_compare == Convert.ToString(this.school_HelperDataSet.Parents[i][0])/*parentsDataGridView[0, i].Value.ToString()*/)
                {
                    I_m = Convert.ToString(this.school_HelperDataSet.Parents[i][1])/*parentsDataGridView[1, i].Value.ToString()*/;
                    F_m = Convert.ToString(this.school_HelperDataSet.Parents[i][2])/*parentsDataGridView[2, i].Value.ToString()*/;
                    O_m = Convert.ToString(this.school_HelperDataSet.Parents[i][3])/*parentsDataGridView[3, i].Value.ToString()*/;
                    V_m = Convert.ToString(this.school_HelperDataSet.Parents[i][5])/*parentsDataGridView[5, i].Value.ToString()*/;
                    T_m = Convert.ToString(this.school_HelperDataSet.Parents[i][6])/*parentsDataGridView[6, i].Value.ToString()*/;
                    A_m = Convert.ToString(this.school_HelperDataSet.Parents[i][7])/*parentsDataGridView[7, i].Value.ToString()*/;
                    R_m = Convert.ToString(this.school_HelperDataSet.Parents[i][8])/*parentsDataGridView[8, i].Value.ToString()*/;
                    D_m = Convert.ToString(this.school_HelperDataSet.Parents[i][9])/*parentsDataGridView[9, i].Value.ToString()*/;
                    S_m = Convert.ToString(this.school_HelperDataSet.Parents[i][10])/**parentsDataGridView[10, i].Value.ToString()*/;
                    //Прогрузка в текстовые поля данных о маме
                    AS.textBox2.Text = F_m;
                    AS.textBox3.Text = I_m;
                    AS.textBox12.Text = O_m;
                    AS.textBox14.Text = V_m;
                    AS.maskedTextBox1.Text = T_m;
                    AS.textBox17.Text = A_m;
                    AS.textBox18.Text = R_m;
                    AS.textBox19.Text = D_m;
                    AS.textBox31.Text = S_m;
 
                    AS.Sost_M = "Информация о маме";
                }
                else
                {
                    AS.Sost_M = "Нету информации о маме";
                    AS.panel1.Visible = false;
                } 
                    //Условие для папы
                if (Papa_compare == this.school_HelperDataSet.Parents[i][0] /*parentsDataGridView[0, i].Value.ToString()*/)
                {
                    I_p = Convert.ToString(this.school_HelperDataSet.Parents[i][1])/*parentsDataGridView[1, i].Value.ToString()*/;
                    F_p = Convert.ToString(this.school_HelperDataSet.Parents[i][2])/*parentsDataGridView[2, i].Value.ToString()*/;
                    O_p = Convert.ToString(this.school_HelperDataSet.Parents[i][3])/*parentsDataGridView[3, i].Value.ToString()*/;
                    V_p = Convert.ToString(this.school_HelperDataSet.Parents[i][5])/*parentsDataGridView[5, i].Value.ToString()*/;
                    T_p = Convert.ToString(this.school_HelperDataSet.Parents[i][6])/*parentsDataGridView[6, i].Value.ToString()*/;
                    A_p = Convert.ToString(this.school_HelperDataSet.Parents[i][7])/*parentsDataGridView[7, i].Value.ToString()*/;
                    R_p = Convert.ToString(this.school_HelperDataSet.Parents[i][8])/*parentsDataGridView[8, i].Value.ToString()*/;
                    D_p = Convert.ToString(this.school_HelperDataSet.Parents[i][9])/*parentsDataGridView[9, i].Value.ToString()*/;
                    S_p = Convert.ToString(this.school_HelperDataSet.Parents[i][10])/**parentsDataGridView[10, i].Value.ToString()*/;
                    //Прогрузка в текстовые поля данных о папе
                    AS.textBox4.Text = F_p;
                    AS.textBox7.Text = I_p;
                    AS.textBox9.Text = O_p;
                    AS.textBox10.Text = V_p;
                    AS.maskedTextBox2.Text = T_p;
                    AS.textBox8.Text = A_p;
                    AS.textBox6.Text = R_p;
                    AS.textBox5.Text = D_p;
                    AS.textBox1.Text = S_p;
 
                    AS.Sost_P = "Информация о папе";
                }
                else
                {
                    AS.Sost_P = "Нету информации о папе";
                    AS.panel2.Visible = false;
                }
                //}
            }
            MessageBox.Show(I_p);
            AS.Show();
        }
Алгоритм переписан полностью с VBA, однако результат выполнения кода, тот же, что и в первом варианте
К сообщению добавляю код проекта, может кто сможет помочь
Вложения
Тип файла: rar School Helper.rar (2.29 Мб, 1 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2015, 15:41

Сумма столбца грида без sql
Подскажите, пожалуйста:impossible:, как подсчитать сумму столбца DBGrid'a, в TEdit не используя sql? ..... Только можно поподробнее, что и...

DataGrid and Pocket - проблема заголовка столбца у грида
Всем доброго времени суток! Никто не сталкивался с проблемой заголовка столбца у грида на покете? Dim DC As DataColumn = New...

Получить содержимое ячейки грида по номеру строки и столбца
Собсна,знаю,что можно получить номер строки и столбца элемента в гриде,если известен объект,при помощи методов Grid.GetColumn() и...

Как посчитать среднее значение одного столбца грида?
var qwer, q: real; begin for i:=1 to (stringGrid1.rowcount-1) do begin q:=strtofloat(stringgrid1.cells); ...

Как исключить ошибку при щелчке по заголовку столбца грида
Добрый день. Выделение всей строки у меня происходит так: private void MainTable_CellMouseClick(object sender,...


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

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

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru