Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 15

Конвертация типов данных в DGV

09.04.2015, 18:25. Показов 1005. Ответов 8
Метки нет (Все метки)

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

C#
1
2
3
4
5
6
7
8
9
10
 for (int i  = 0; i < dgv1.Rows.Count; i++)
            {
 
                var temp1 = Convert.ToDouble (dgv1.Rows[i].Cells[5].Value);
                var temp2 = Convert.ToDouble (dgv1.Rows[i].Cells[6].Value);
                var temp3 = (temp2 / temp1) * 100;
 
 
                dgv1.Rows[i].Cells[7].Value = temp3.ToString()+ "%";
            }
Пробовал по разному объявлять тип данных, но в итоге ничего не меняется. Ровно как и конвертировать в другие форматы. В таблице в этих ячейках указаны числа. Но если вместо индекса "i" указать просто число то всё работает. Подскажите пожалуйста как быть?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2015, 18:25
Ответы с готовыми решениями:

Перенос данных из одного DGV в другой DGV
Нужно перенести данные из одного dgv в другой(в идеале ещё прибавить к столбцам выбранные значения из текстбокса). DGV-хи находятся на...

Конвертация типов данных.
Я уже чтвёртый день ломаю голову над этой проблеммой. Допищите мне пожалуйста эти 2 несчастные строчки. То что нужно описано в коде. ...

Конвертация типов данных
Здравствуйте. Подскажите пожалуйста каким образом можно вывести в TextView информацию из переменной числового типа.

8
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.04.2015, 18:37
Цитата Сообщение от Infeltrace Посмотреть сообщение
Подскажите пожалуйста как быть?
Пройдите отладчиком, проверьте, точно ли есть числа в Value.
Попробуйте использовать double.Parse()
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
09.04.2015, 18:41
Цитата Сообщение от Infeltrace Посмотреть сообщение
но почему то у меня не получается этого сделать
Что именно не получается? Какие то ошибки выходят?
Лично у меня этот код работает.
0
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 15
09.04.2015, 19:39  [ТС]
Вложение 512684
Цитата Сообщение от tarasalk Посмотреть сообщение
Какие то ошибки выходят?
Да, вот такая штука: Object cannot be cast from DBNull to other types.
Миниатюры
Конвертация типов данных в DGV  
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.04.2015, 20:27
Цитата Сообщение от Infeltrace Посмотреть сообщение
Object cannot be cast from DBNull to other types.
"Объект не может быть преобразован из типа DBNull к какому-то другому типу".
Т.е, у вас значение Value - null.
0
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 15
10.04.2015, 00:37  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
"Объект не может быть преобразован из типа DBNull к какому-то другому типу".
Т.е, у вас значение Value - null.
Очень уж это странно, поскольку если я значение вывожу банально в текстбокс то всё отображается. Больше того, повторюсь, если вместо индекса "i" поставить какую либо цифру: 0,1,2... без разницы то всё нормально считает, но суть то заключается в самом цикле.
Если я пишу вот так:
C#
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < dgv1.Rows.Count; i++)
            {
 
                var temp1 = Convert.ToDouble(dgv1.Rows[1].Cells[5].Value);
                var temp2 = Convert.ToDouble(dgv1.Rows[1].Cells[6].Value);
                var temp3 = (temp2 / temp1) * 100;
 
 
                dgv1.Rows[i].Cells[7].Value = temp3.ToString() + "%";
            }
оно всё считает, только выводи одно и тоже значение.
Может ли быть это связано с тем что я загружаю в datagridview таблицу excel?
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
10.04.2015, 14:31
Infeltrace, скорее всего. Как уже вам сказали, пройдитесь дебагом. Посмотрите какая именно ячейка вызывает ошибку, потому что лично у меня ошибок этот код не вызывает даже если datagridview вообще пустая.
0
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 15
21.04.2015, 23:29  [ТС]
Всё оказалось на много проще.
C#
1
dgv1.Rows[i].Cells[7].Value = temp3.ToString() + "%";
Ошибка в добавлении символа *равно*, без него всё работает. + конвертировать в стринг не обязательно. Оно его и так съест.
0
1 / 1 / 0
Регистрация: 20.01.2016
Сообщений: 10
23.03.2016, 21:58
Цитата Сообщение от Infeltrace Посмотреть сообщение
Всё оказалось на много проще.
C#
1
dgv1.Rows[i].Cells[7].Value = temp3.ToString() + "%";
Ошибка в добавлении символа *равно*, без него всё работает. + конвертировать в стринг не обязательно. Оно его и так съест.
Infeltrace, столкнулся с такой же проблемой, что значит "Ошибка в добавлении символа *равно*, без него всё работает", а как присвоить ячейке значение? Что вместо *равно*?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2016, 21:58
Помогаю со студенческими работами здесь

Конвертация типов данных
Доброго время суток. Хотел бы задать простенький вопрос. 1.Из ком. строки читаются параметры argv. Допустим один из них равен '12'...

Конвертация типов с++
int p=255; string s=p; в результате s='я', а как внести p в s как число, чтобы s={'2','5','5'} ? только посимвольно или можно как-то...

Конвертация типов
Доброго времени суток. У меня есть цикл for (int i= 0; i&lt;999; i++) { //Здесь нужно конвертировать i в строку //Здесь обратно в...

Конвертация типов C++
Всем привет, возникла такая задача, нужно из файла считать строку и конвертировать ее в TSTRING, но я не могу понять принцип как это должно...

Конвертация типов
Здравствуйте! Ребята помогите решить проблему вылетает ошибка вот здесь я выделил жирным void PrintNetFiles(LPWSTR server) { ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru