Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Преобразование типов в dataGridView


Автор: Nosaer 26.5.2014, 16:54
Здравствуйте. Возникла проблема с преобразованием типов. В таблицу ввожу, только числа. При отладке выводит ошибку: "Входная строка имела неверный формат"
По документации вроде как все значения в DataGridView хранятся в типе string.

            
Код

            string str;
            int DataCh; 
            str = this.dataGridView1.Rows[0].Cells[0].ToString(); 
            DataCh = int.Parse(str); 
            

Автор: jonie 26.5.2014, 21:02
так поставьте на последней строке брейкпоинт и посмотрите что там у вас в строке..

Автор: Nosaer 27.5.2014, 08:53
Хех=)
А почему у меня вместо числового значения в str заносится "DataGridViewTextBoxCell { ColumnIndex=1, RowIndex=0 }"?=)

Автор: jonie 27.5.2014, 10:56
Цитата(Nosaer @  27.5.2014,  09:53 Найти цитируемый пост)

А почему у меня вместо числового значения в str заносится "DataGridViewTextBoxCell { ColumnIndex=1, RowIndex=0 }"?=)

быть может потому что надо брать Value у этого Cell[i] ?)

Автор: Nosaer 27.5.2014, 15:01
jonie, спасибо=) Оно самое)

Еще один глупый вопрос   smile 

Вот у меня теперь в  такой же DataGridView заносятся данные типа float.
Но при попытке вытащить их потом обратно, выходят всякие сообщения о неявном преобразовании и.т.д.
this.dataGridView1.Rows[0].Cells[0].ValueType говорит, что данные лежат в формате Object.
Как мне их оттуда вытащить и вновь преобразовать во float?

Пробую так:
Код

string str;
float num;
str = (string)this.dataGridView3.Rows[j].Cells[i].Value;
num = Convert.ToSingle(str);


Но в str записывается null и выводится ошибка "Не удалось привести тип объекта "System.Single" к типу "System.String"."
Если там находится какое либо слово, то оно в str записывается, но так же выдает ошибку потому как не может в числовой формат перевести, а когда там число с плавающей запятой, то и вовсе null пишет постоянно.

Автор: jonie 27.5.2014, 19:01
Цитата(Nosaer @  27.5.2014,  16:01 Найти цитируемый пост)
Вот у меня теперь в  такой же DataGridView заносятся данные типа float.
Но при попытке вытащить их потом обратно, выходят всякие сообщения о неявном преобразовании и.т.д.

что вы знаете о понятиях boxing\unboxing?

Автор: Nosaer 28.5.2014, 14:18
Мне нравится ваш подход, к разъяснению=) Так сказать пенок в нужную сторону. Хорошо для саморазвития=)
Спасибо. Упустил момент, что при упаковки и распаковки типы должны совпадать. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)