Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
.NET 4.x

Выборка данных из DataGridView

06.05.2014, 18:24. Показов 2938. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

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

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

Например, есть вещества: 1 (а), 2(б), 3(в), 4(г), 4(д), 5(е), 6(ж), 6(з), 6(и), 7(к), 8(л).
Вывод: 1(а), 2(б), 3(в), 4 (г + д), 5 (е), 6(ж + з + и), 7(к), 8(л).
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2014, 18:24
Ответы с готовыми решениями:

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

Выборка из datagridview
Всем здравствуйте. Есть datagridview следующего вида: необходимо разбить эту таблицу на несколько , т.е. в данном случае будет...

DataGridView выборка из разных таблиц
Имеем вот такой "датагрид" (фото вложено), вытянутый из таблицы, допустим, Payments. Задача вместо колонок "ID Клиента" и...

16
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 22:09
Grid из БД заполняется? Можно свернуть группировкой в запросе.
0
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
07.05.2014, 16:51  [ТС]
нет.. из xml... да я наверное заполню список неповторяющими, а потом перечитаю xml-ку
0
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 08:02  [ТС]


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

никак не получается суммировать...

первый грид загружается из xml, всего три файла...но может быть и 53...
1
Заблокирован
10.05.2014, 14:08
Лучший ответ Сообщение было отмечено GarZa как решение

Решение

GarZa, думаю тут поможет LINQ to XML. Я до него еще не дошел в изучении, поэтому код написать не см огу. Но я попробую сегодня разобраться с самим запросом LINQ. Хотя, думаю, помогут гораздо быстрее.

Добавлено через 2 часа 3 минуты
GarZa, вот что у меня получилось. Если я вас правильно понял, то должно подтолкнуть в правильную сторону:
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
        static void Main(string[] args)
        {
            Dictionary<int,Nabor> dict = new Dictionary<int,Nabor>();
            dict.Add(101,new Nabor("Алюминий ",3,2));
            dict.Add(102, new Nabor("Цинк ", 1, 1));
            dict.Add(103, new Nabor("Платина", 1, 4));
            dict.Add(104, new Nabor("Серебро", 3, 2));
            dict.Add(105, new Nabor("Медь", 4, 2));
            dict.Add(106, new Nabor("Медь", 5, 4));
            dict.Add(107, new Nabor("Железо", 1, 6));
            dict.Add(108, new Nabor("Цинк ", 7, 2));
            dict.Add(109, new Nabor("Платина", 4, 8));
            dict.Add(110, new Nabor("Серебро", 0, 2));
 
            Console.WriteLine("Таблица:");
 
            foreach (var k in dict)
                Console.WriteLine("{0}, {1}\t {2}\t {3} ", k.Key, k.Value.VEW, k.Value.M, k.Value.XM);
 
            Console.WriteLine("Группируем:");
 
            var query1 = from p in dict.Values
                        group p by p.VEW into pg
                        select new { TotalSumM = pg.Sum(p => p.M), Name = pg.Key, TotalSumXM = pg.Sum(p => p.XM) };
 
            foreach (var z in query1)
                Console.WriteLine("{0}\t {1}\t {2}\t",z.Name, z.TotalSumM,z.TotalSumXM);
 
            Console.ReadKey();
        }
 
        public class Nabor
        {
            string vew;
            int m;
            int xm;
 
            public int M
            {
                get { return m;}
                set {m = value;}
            }
            public int XM
            {
                get { return xm; }
                set { xm = value; }
            }
            public string VEW
            {
                get { return vew; }
                set { vew = value; }
            }
 
           public Nabor(string str, int a, int b)
            {
                this.m = a;
                this.xm = b;
                this.vew = str;
            }
        }
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Таблица:
101, Алюминий    3       2
102, Цинк        1       1
103, Платина     1       4
104, Серебро     3       2
105, Медь        4       2
106, Медь        5       4
107, Железо      1       6
108, Цинк        7       2
109, Платина     4       8
110, Серебро     0       2
Группируем:
Алюминий         3       2
Цинк     8       3
Платина  5       12
Серебро  3       4
Медь     9       6
Железо   1       6
Добавлено через 57 секунд
Чуть не забыл: В примере сделал группировку по названию элемента, но но можно по любому другому полю.
1
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 14:51  [ТС]
спасибо вам... но немного не то... словарь я уже пробовал... забить в него можно, однако сложность именно в том, чтобы сложить значения у идентичных ключей, не сохраняя дубляж этих самых ключей...

а первый грид берет данные как раз из хмл.. ниже привожу их содержимое и кое какой код:

1. 1_30042014_1.xml

XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<head>
  <source codelink="1" sourcename="Труба котельной" type="t" height="12" width="0,5" vgvs="0,12" v1="0,023562" deltatemp="0,100000000000001" alpha="0" X1="1000" Y1="1500" koefrelief="1">
    <dirt unicode="0101" namedirt="Алюминия оксид" volumedirt="0,5" pdk="0,1" koefsub="1" aggstate="2" cm="12,5370888987" xm="68,4" um="0,5" />
    <dirt unicode="0102" namedirt="Алкилсульфат натрия" volumedirt="1,12" pdk="0,01" koefsub="1" aggstate="2" cm="280,8307913310" xm="68,4" um="0,5" />
    <dirt unicode="0103" namedirt="Альфа-3" volumedirt="52,3" pdk="3" koefsub="1" aggstate="2" cm="43,7126499602" xm="68,4" um="0,5" />
  </source>
</head>
2. 1_30042014_2.xml

XML
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<head>
  <source codelink="2" sourcename="Шахта трубы" type="t" height="10" width="0,5" vgvs="81,49" v1="16,000524" deltatemp="4,1" alpha="0" X1="750" Y1="520" koefrelief="1">
    <dirt unicode="0111" namedirt="Висмута оксид" volumedirt="11,26" pdk="0,5" koefsub="1" aggstate="2" cm="0,8166654664" xm="368,33156" um="11,658981" />
    <dirt unicode="0337" namedirt="Углерод оксид" volumedirt="3" pdk="5" koefsub="1" aggstate="4" cm="0,0217584050" xm="368,33156" um="11,658981" />
  </source>
</head>
3. 1_30042014_3.xml

XML
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<head>
  <source codelink="3" sourcename="Трубы шахта" type="t" height="10" width="2" vgvs="52" v1="163,362818" deltatemp="1,1" alpha="0" X1="8700" Y1="6322" koefrelief="1">
    <dirt unicode="0102" namedirt="Алкилсульфат натрия" volumedirt="25,12" pdk="0,01" koefsub="1" aggstate="2" cm="35,6891679543" xm="588,462023" um="29,759087" />
  </source>
</head>

Код, заполняющий 1 грид:

Кликните здесь для просмотра всего текста
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
90
91
92
93
94
95
96
FileCmUmXm.Value = null;
            string sourcename = null;
            string namedirtdirt = null;
            string unicodedirt = null;
            string volumedirtdirt = null;
            string cmdirt = null;
            string xmdirt = null;
            string umdirt = null;
 
            
            for (int i = 1; i <= CountSource; i++)
            {
                codelinkvalue = i;
                FileCmUmXm.Value = DirCalc.Value + namefilelinkvalue + "_" + codelinkvalue + ".xml";
                XDocument doc4 = XDocument.Load(FileCmUmXm.Value);
                foreach (XElement el in doc4.Root.Elements("source"))
                {
                    foreach (XAttribute elul in el.Attributes())
                    {
 
                        if (elul.Name.ToString() == "sourcename")
                        {
                            sourcename = elul.Value;
                        }
 
                    }
 
 
                }
 
                foreach (XElement el in doc4.Root.Elements("source"))
                {
 
                    foreach (XElement elul in el.Elements("dirt"))
                    {
                        foreach (XAttribute elule in elul.Attributes("namedirt"))
                        {
                            namedirtdirt = elule.Value;
                            
                        }
                        foreach (XAttribute elule in elul.Attributes("volumedirt"))
                        {
                            volumedirtdirt = elule.Value;
 
                        }
                        foreach (XAttribute elule in elul.Attributes("cm"))
                        {
                            cmdirt = elule.Value;
 
                        }
                        foreach (XAttribute elule in elul.Attributes("xm"))
                        {
                            xmdirt = elule.Value;
 
                        }
                        foreach (XAttribute elule in elul.Attributes("um"))
                        {
                            umdirt = elule.Value;
 
                        }
                        foreach (XAttribute elule in elul.Attributes("unicode"))
                        {
                            unicodedirt = elule.Value;
                            DataGridViewCell celsource = new DataGridViewTextBoxCell();
                            DataGridViewCell celunicodedirt = new DataGridViewTextBoxCell();
                            DataGridViewCell celnamedirtdirt = new DataGridViewTextBoxCell();
                            DataGridViewCell celvolumedirtdirt = new DataGridViewTextBoxCell();
                            DataGridViewCell celcmdirt = new DataGridViewTextBoxCell();
                            DataGridViewCell celxmdirt = new DataGridViewTextBoxCell();
                            DataGridViewCell celumdirt = new DataGridViewTextBoxCell();
                            DataGridViewRow row = new DataGridViewRow();
                            celsource.Value = sourcename;
                            celunicodedirt.Value = unicodedirt;
                            celnamedirtdirt.Value = namedirtdirt;
                            celvolumedirtdirt.Value = volumedirtdirt;
                            celcmdirt.Value = cmdirt;
                            celxmdirt.Value = xmdirt;
                            celumdirt.Value = umdirt;
                            row.Cells.AddRange(celsource, celunicodedirt, celnamedirtdirt, celvolumedirtdirt,
                                               celcmdirt, celumdirt, celxmdirt);
                            GridFirstCalc.Rows.Add(row);
                            if (!UniCodeSumm.Contains(unicodedirt))
                            {
                                UniCodeSumm.Add(unicodedirt);
                            }
                            
 
 
                        }
 
 
 
                    }
 
                }
}


Попытка заполнения второго грида прямо из xml-ек тех же:

Кликните здесь для просмотра всего текста
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
string[] FilesXML = Directory.GetFiles(DirCalc.Value, namefilelinkvalue + "_*");
 
 
//заполняем первый столбец
            for (int i = 0; i < UniCodeSumm.Count; i++)
            {
                DataGridViewCell celunicodesumm = new DataGridViewTextBoxCell();
                DataGridViewRow rowsumm = new DataGridViewRow();
                celunicodesumm.Value = UniCodeSumm[i];
                rowsumm.Cells.AddRange(celunicodesumm);
                DataGridSumm.Rows.Add(rowsumm);
            }
 
           
            for (int j = 1; j <= FilesXML.Count(); j++)
            {
                FileCmUmXm.Value = DirCalc.Value + namefilelinkvalue + "_" + Convert.ToString(j) + ".xml";
                XDocument doc4 = XDocument.Load(FileCmUmXm.Value);
                foreach (XElement el in doc4.Root.Elements("source"))
                {
 
                    foreach (XElement elul in el.Elements("dirt"))
                    {
                        for (int i = 0; i < UniCodeSumm.Count; i++)
                        {
                           
                                  foreach (XAttribute atrelul in elul.Attributes("unicode"))
                                    {
 
                                        if (atrelul.Value == UniCodeSumm[i])
                                        {
 
                                            DataGridSumm.Rows[i].Cells[1].Value = elul.Attribute("namedirt").Value; //заполняем второй столбец
                                            
                                           
                                        //проблемное место: нужно выбрать повторяющиеся конкретные вещества, суммировать их значения и выписать....     
                                              
                                                
                                          
                                               
                                                
                                                DataGridSumm.Rows[i].Cells[2].Value = Convert.ToString(summ);
                                                
                                            
                                            
                                        }
                                    }
 
 
                                  
                       
                        }
                    }
                }
 
 
            }


Как я уже говорил - количество файлов XML может быть разным, да и количество веществ - тоже..
1
Заблокирован
10.05.2014, 15:45
Цитата Сообщение от GarZa Посмотреть сообщение
спасибо вам... но немного не то... словарь я уже пробовал... забить в него можно, однако сложность именно в том, чтобы сложить значения у идентичных ключей, не сохраняя дубляж этих самых ключей...
GarZa, Всмысле не сохраняя дубляж ключей?
0
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 16:35  [ТС]
Ev_Hyper, все получилось...спасибо вам... внимательнее поизучал ваш код...

остался небольшой вопрос: как протянуть строку с помощью такого варианта?

Вот из этой строки вытащить ее:

C#
1
select new { TotalSumM = pg.Sum(p => p.VolumeDirt), Name = pg.Key };
В классе место сделал, присвоил выше в коде, теперь ее просто отразить надо...
0
Заблокирован
10.05.2014, 16:37
Цитата Сообщение от GarZa Посмотреть сообщение
остался небольшой вопрос: как протянуть строку с помощью такого варианта?
GarZa, то есть как занести её в datagridview?
0
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 16:39  [ТС]
Ev_Hyper, нет-нет...

вот так забивается мой класс в словаре:

C#
1
main.Add(h++, new Nabor(unicodedirt, namedirtdirt, Convert.ToDouble(volumedirtdirt)))
первое - ключ, третье - то, что будет суммировать...а вот второе как вывести? там просто строка...название этого вещества в общем..
0
Заблокирован
10.05.2014, 16:54
GarZa, все равно не понял
Я использовал словарь чисто из-аз принципа, хотя там было достаточно и List. Можно было попробывать обращаться непосредственно к коллекции строк datagridview, или datatable. Но у меня не получилось.
А вообще я бы предложил использовать БД, а потом выбирать оттуда запросами в datagridview все что требуется.
То есть один метод считывает из .xml - файлов и заносит информацию в БД
А второй отображает все что нужно
Так будет намного удобнее и проще, чем создавать список из строк.
0
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 16:59  [ТС]
Ev_Hyper, да, согласен... но БД не получится - таково требование заказчика...

вот смотрите:

так оформлен класс:

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
public class Nabor
        {
            string unicode;
            string namedirt;
            double volumedirt;
            
 
            public double VolumeDirt
            {
                get { return volumedirt; }
                set { volumedirt = value; }
            }
            
            public string UniCode
            {
                get { return unicode; }
                set { unicode = value; }
            }
 
            public string NameDirt
            {
                get { return namedirt; }
                set { namedirt = value; }
            }
 
            public Nabor(string str, string str2, double a)
            {
                this.volumedirt = a;
                this.namedirt = str2;
                this.unicode = str;
            }
        }
так они заполняются:

C#
1
 main.Add(h++, new Nabor(unicodedirt, namedirtdirt, Convert.ToDouble(volumedirtdirt)));

а вот тут выводятся:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
int k = 0;
                var query1 = from p in main.Values
                             group p by p.UniCode into pg
                             select new { TotalSumM = pg.Sum(p => p.VolumeDirt), Name = pg.Key };
 
                foreach (var z in query1)
                {
                    DataGridSumm.Rows[k].Cells[0].Value = z.Name;
                    //DataGridSumm.Rows[k].Cells[1].Value = ;
                    DataGridSumm.Rows[k].Cells[2].Value = Convert.ToString(z.TotalSumM);
                    
                    k++; 
                }
но выводятся только UniCode (текстовый ключ) и VolumeDirt - суммируемые значения... а вот NameDirt как вывести из этой строки?
C#
1
select new { TotalSumM = pg.Sum(p => p.VolumeDirt), Name = pg.Key };
1
Заблокирован
10.05.2014, 17:24
GarZa, все равно не понял. Жаль, что нельзя сделать через БД. Но все равно нет смысла создавать дополнительный Dictionary и класс. Я их создал, из-за того, что приложение было консольное. Так как вы работаете с 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
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
public partial class Form1 : Form
    {
        DataTable Table1;
        DataTable Table2;
        public Form1()
        {
            InitializeComponent();
            CreateDataTable();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            CreateDataTable2();
 
        }
        private void CreateDataTable()
        {
            Table1 = new DataTable();
            DataColumn column1 = new DataColumn("Источник", typeof(string));
            DataColumn column2 = new DataColumn("Код вещества", typeof(int));
            DataColumn column3 = new DataColumn("Вещество", typeof(string));
            DataColumn column4 = new DataColumn("М г/с", typeof(double));
            DataColumn column5 = new DataColumn("См, доли", typeof(double));
            DataColumn column6 = new DataColumn("Cm г/с", typeof(double));
            DataColumn column7 = new DataColumn("Xм, доли", typeof(double));
            Table1.Columns.AddRange(new DataColumn[] { column1, column2, column3, column4, column5, column6, column7 });
            Table1.Rows.Add("Труба котельной", 0101, "Алюминия оксид", 0.5, 12.012, 0.5, 68.4);
            Table1.Rows.Add("Труба котельной", 0102, "Алкилсульфат натрия", 0.5, 12.012, 0.5, 68.4);
            Table1.Rows.Add("Труба котельной", 0101, "Альфа-3", 0.5, 12.012, 0.5, 68.4);
            Table1.Rows.Add("Шахта трубы", 0101, "Висмута оксид", 0.5, 12.012, 0.5, 68.4);
            Table1.Rows.Add("Шахта трубы", 0101, "Углерод оксид", 0.5, 12.012, 0.5, 68.4);
            Table1.Rows.Add("Трубы шахта", 0102, "Алкилсульфат натрия", 0.5, 12.012, 0.5, 68.4);
            dataGridView1.DataSource = Table1;
        }
 
        private void CreateDataTable2()
        {
            Table2 = new DataTable();
            DataColumn column1 = new DataColumn("Код вещества", typeof(int));
            DataColumn column2 = new DataColumn("Вещество", typeof(string));
            DataColumn column3 = new DataColumn("Сумма1", typeof(double));
            DataColumn column4 = new DataColumn("Сумма2", typeof(double));
            DataColumn column5 = new DataColumn("Сумма3", typeof(double));
 
            Table2.Columns.AddRange(new DataColumn[] { column1, column2, column3, column4, column5});
            dataGridView2.DataSource = Table2;
                      var query1 = from p in Table1.AsEnumerable()
                                   group p by p["Вещество"] into pg
                                   select new
                                   {
                                       name = pg.Key,
                                       TotalSum1 = pg.Sum(p => p.Field<double>("М г/с")),
                                       TotalSum2 = pg.Sum(p => p.Field<double>("См, доли")),
                                       TotalSum3 = pg.Sum(p => p.Field<double>("Cm г/с"))
                                       
                                   };
 
                      foreach (var z in query1)
                          Table2.Rows.Add(1, z.name, z.TotalSum1, z.TotalSum2, z.TotalSum3);
            
        }
Миниатюры
Выборка данных из DataGridView  
1
Заблокирован
10.05.2014, 17:26
осталось только разобраться как вывести код вещества, но над этим подумаю чуть попозже - голова уже плохо соображает.
0
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 17:28  [ТС]
Ev_Hyper, спасибо вам... не заморачивайтесь сильно то
0
Заблокирован
10.05.2014, 18:20
Смог придумать только кривой поиск по таблице. Хотелось бы узнать как это сделать правильнее, чем:

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
 private void CreateDataTable2()
        {
            Table2 = new DataTable();
            DataColumn column1 = new DataColumn("Код вещества", typeof(int));
            DataColumn column2 = new DataColumn("Вещество", typeof(string));
            DataColumn column3 = new DataColumn("Сумма1", typeof(double));
            DataColumn column4 = new DataColumn("Сумма2", typeof(double));
            DataColumn column5 = new DataColumn("Сумма3", typeof(double));
 
            Table2.Columns.AddRange(new DataColumn[] { column1, column2, column3, column4, column5});
            dataGridView2.DataSource = Table2;
                      var query1 = from p in Table1.AsEnumerable()
                                   group p by p["Вещество"] into pg
                                   select new
                                   {
                                       name = pg.Key,
                                       TotalSum1 = pg.Sum(p => p.Field<double>("М г/с")),
                                       TotalSum2 = pg.Sum(p => p.Field<double>("См, доли")),
                                       TotalSum3 = pg.Sum(p => p.Field<double>("Cm г/с"))
                                   };
 
                      foreach (var z in query1)
                          Table2.Rows.Add(Find(z.name.ToString()), z.name, z.TotalSum1, z.TotalSum2, z.TotalSum3);
            
        }
 
        private int Find(string str)
        {
            var q1 = from k in Table1.AsEnumerable()
                     where k.Field<string>("Вещество") == str
                     select k.Field<int>("Код вещества");
            foreach (var x in q1)
                return x;
                     
            return 10;
        }
1
 Аватар для GarZa
12 / 12 / 1
Регистрация: 23.03.2014
Сообщений: 86
10.05.2014, 18:32  [ТС]
Ev_Hyper, вариант со словарем оригинальнее, на мой взгляд...знать бы только как из сортированного вытащить строку...


тут бы еще сильно не накручивать...кабы не было ошибок... там эти цифры в итоге участвуют, буквально, в десятках тысяч разных расчетов..ошибка будет тут - все уплывет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2014, 18:32
Помогаю со студенческими работами здесь

DatagridVIew выборка данных
Здравствуйте, мне нужно заполнить ДатуГрид данными из БД, которые бы соответствовали условию - в таблице есть три поля которые с одинаковым...

SQL Server 2012: выборка данных из БД в DataGridView
Добрый день. Помогите пожалуйста, в visual basic у меня есть datagrid делаю новое подключение, настраиваю подключение нажимаю...

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

Выборка данных из нескольких таблиц. Аналитическая выборка данных
16 Для каждого отдела выбрать отношение зарплаты и комиссионных сотрудников отдела к объему продаж отдела. 17 *Выбрать список штатов в...

Выборка из datagridview
Добрый день. Необходима вожможность выборки данных из dataGridView в нее саму вывожу таким кодом.SetConnection(); con.Open();...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru