Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 1
Регистрация: 22.12.2015
Сообщений: 44
1

Изменение типа данных в столбце dataGridView

06.06.2016, 05:28. Показов 1542. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте.
Столкнулся с проблемой, что при сортировке таблицы по значениям в определенном столбце корректно можно отсортировать только числа до 9, потому что сортировка собственно идет как по алфавиту. Причина в том, что тип данных в столбце string. Пытаюсь теперь понять, как перевести данные из string в int. Читал в интернете и назрел вопрос - неужели все действительно так сложно в этом плане? Вроде операция звучит вполне сносно, но если нахожу примерно похожие на мою ситуации, то там людям приходилось знатно извращаться ради этого.

Вот мой код программы
Программа
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
namespace El_Kursa4io
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void сортироватьМассивToolStripMenuItem_Click(object sender, EventArgs e)
        {
            dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending); // Сортировка в алфавитном порядке
        }
        void SortDataViewByColumn(DataGridView dataGridView, string nameColumn) // Подпрограмма сортировки по интересу
        {
            dataGridView.Sort(dataGridView.Columns[nameColumn], ListSortDirection.Descending);
        }
        private void тестToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DataGridView[] MyArrayGrid = { dataGridView2, dataGridView3, dataGridView4, dataGridView5, dataGridView6 };
            dataGridView2.Rows.Clear();
            dataGridView3.Rows.Clear();
            dataGridView4.Rows.Clear();
            dataGridView5.Rows.Clear();
            dataGridView6.Rows.Clear();
            int A;
            for (int i = 2; i < dataGridView1.ColumnCount; i++)
                for (int j = 0; j < dataGridView1.RowCount; j++)
                    if (int.TryParse(Convert.ToString(dataGridView1.Rows[j].Cells[i].Value), out A) && A != 0)
                    {
                        MyArrayGrid[i - 2].Rows.Add(dataGridView1.Rows[j].Cells[0].Value, dataGridView1.Rows[j].Cells[i].Value);
                    }
        }
        private void сортироватьЧастныеТаблицыToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SortDataViewByColumn(dataGridView2, "dataGridViewTextBoxColumn8");
            SortDataViewByColumn(dataGridView3, "dataGridViewTextBoxColumn2");
            SortDataViewByColumn(dataGridView4, "dataGridViewTextBoxColumn4");
            SortDataViewByColumn(dataGridView5, "dataGridViewTextBoxColumn10");
            SortDataViewByColumn(dataGridView6, "dataGridViewTextBoxColumn6");
        }
    }
}

И скриншот прикреплю, чтобы было понятно о чем речь.
Подскажите, как мне быть, пожалуйста.
Миниатюры
Изменение типа данных в столбце dataGridView  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2016, 05:28
Ответы с готовыми решениями:

Изменение цвета строки в Datagridview по условию в столбце
Доброго дня форумчане. Подскажите как решить такой вопрос: у меня есть dataGridView данные в...

Изменение типа dataGridView
У меня в dataGridView автоматические добавлялись значения из БД. Мне нужно переприсвоить ячейки,...

Изменение типа колонки в DataGridView
Каким образом можно после инициализации DataGridViwe изменить тип поля с DataGridViewTextBoxColumn...

Программное изменение типа столбца в DataGridView
Подскажите пожалуйста как мне в программе (не в дизайнере) поменять тип столбца, необходимо...

1
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
06.06.2016, 10:55 2
Так как я пишу на WPF я присоединяю DataGrid к коллекции ObservableCollection и дальше уже работаю с этой коллекцией.
Как пример сортировки ObservableCollection:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.ObjectModel;
using System.Linq;
            
            var Names= new ObservableCollection<string>
            {
                "1", "3", "10", "8", "21"     
            };
 
            foreach(var item in Names)
            {
                Console.WriteLine(item);
            }
            
            Console.WriteLine("*****************************");
            
            Names = new ObservableCollection<string>(Names.OrderBy(i => Convert.ToInt32(i)));
            foreach (var item in Names)
            {
                Console.WriteLine(item);
            }
Может этот вариант поможет Вам.

Добавлено через 7 минут
Но это только при условии, что там будут только числа. Лучше всего на всякий случай обернуть в try catch конструкцию и выводить сообщение об ошибке.
1
06.06.2016, 10:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2016, 10:55
Помогаю со студенческими работами здесь

Изменение типа конкретного столбца dataGridView
Здравствуйте! Уточню сабж: вывожу данные из MSSQL таким нехитрым способом: DataTable dt = new...

Событие DataGridView на изменение значения в ячейке типа DataGridViewComboBoxCell
Всем доброго времени суток! Столкнулся с задачей обрабатывать событие изменения значения в ячейке...

Изменение типа столбца DataGridView после его заполнения из бд
Здравствуйте. Есть DataGridView, который заполняется следующим способом: ... CompDataAdapter...

Формат и контроль ввода данных в столбце DataGridView
Доброго времени суток! В DataGridView имеется несколько столбцов с текстовыми данными и один с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru