У меня есть DataGridView с столбцами TextBox. В одном из столбцов отображается количество записей в формате ###, ###, 000. Сам столбец не настроен на форматирование текста, но данные форматируются при заполнении источника данных. Кстати, источником данных является список. DataGridView просто отображает все, как он получает.
Теперь мне нужно проанализировать числовое текстовое значение в переменную, что хорошо, если сделать
int.Parse(data_grid_view_row.Cells["col_Record_Count"].Value.ToString())
но, если у меня есть числа, достигающие тысяч, он отображается как 1 000 из-за форматирования. Форматирование создает пробел, а не запятую, поскольку так настроена среда. Когда я пытаюсь проанализировать это значение, я получаю исключение из-за пробела в числовом значении.
Я попытался отформатировать строковое значение
int.Parse(String.Format("{0:000000000}", data_grid_view_row.Cells["col_Record_Count"].Value.ToString()))
и
int.Parse(String.Format("{0:########0}", data_grid_view_row.Cells["col_Record_Count"].Value.ToString()))
и все виды вариантов, но он продолжает возвращать пробел в значении, который затем не будет анализироваться. Я пытался заменить пространство, но оно постоянно. Кроме того, пробел показывает код клавиши ASCII 63, который должен быть знаком вопроса, не так ли? Даже когда я пытаюсь заменить, используя код ключа ... ничего!
Есть идеи, почему это происходит и как это исправить?
Полный кодовый блок, который у меня есть,
foreach (DataGridViewRow data_grid_view_row in dgv_Migration_Files.Rows)
{
if ((bool)data_grid_view_row.Cells["col_Select"].Value == true)
{
//-------------------------------------------------------------------------
// this is only to test and see what value I get for the space character, will be removed later
string test_str = data_grid_view_row.Cells["col_Record_Count"].Value.ToString().Replace(" ", string.Empty);
test_str = test_str.Replace(" ", "");
for (int k = 0; k < test_str.Length; k++)
{
string newstr = test_str.Substring(k, 1);
var kycode = ASCIIEncoding.ASCII.GetBytes(newstr);
}
//-------------------------------------------------------------------------
migrate.Add(new Migrate()
{
File_Folder = data_grid_view_row.Cells["col_File_Folder"].Value.ToString()
,
File_Name = data_grid_view_row.Cells["col_File_Name"].Value.ToString()
,
Record_Count = int.Parse(String.Format("{0:000000000}", data_grid_view_row.Cells["col_Record_Count"].Value.ToString()))
});
}
}