2015-02-26 6 views
0

Я пытаюсь представить правильное двойное значение в моем Listbox. Значения в моей базе данных SQL представлены, например, как «0,09». Теперь я помещаю эти значения, которые находятся в определенном столбце, в Listbox с инструкцией «SELECT DISTINCT». При поиске в базе данных мне нужно написать «0.09» с «0,09», чтобы найти значение. Это не проблема. Я попытался преобразовать каждое двойное значение сТрудности с CultureInfo и представление в Listbox

CultureInfo culInfo = new CultureInfo("en-US"); 
for (int i = 0; i < convertCol.Count; i++) 
      { 
       storeDouble = convertCol[i]; 
       convertToString = storeDouble.ToString("0.######"); 


       if (convertToString.Contains(",")) 
       { 
        convertedString = convertToString.Replace(",", "."); 
        convertBackToDouble = double.Parse(convertedString, culInfo); 
         //Convert.ToDouble(convertedString); 
        convertedCol.Add(convertBackToDouble); 

       } 

       else 
       { 
        convertedCol.Add(convertCol[i]); 

       } 
      } 

      DataColumn dc = new DataColumn(form1.getColName()); 
      dc.DataType = typeof(double); 
      datTable.Columns.Add(dc); 

      for (int j = 0; j < convertedCol.Count; j++) 
      { 
       datTable.Rows.Add(convertedCol[j]); 
      } 

      form1.colStorList.DisplayMember = form1.getColName(); 
      form1.colStorList.ValueMember = "Column"; 
      form1.colStorList.DataSource = datTable; 

Когда я оставляю CultureInfo и попробовать «Convert.ToDouble», а затем «0,09» преобразуется в «9,0». С CultureInfo это кажется правильным, но у моего Listbox все еще есть записи типа «0,09». Как «заставить» ListBox отображать мои значения как «0.09»?

+0

Я не знаю, почему это происходит. Но если оно равно 2 десятичным знакам, тогда значение 'value/100' может работать. –

+0

«Значения в моей базе данных SQL представлены как« 0,09 », например» - почему вы не представляете их как * число * в своей базе данных? Когда вы выбираете правильные типы полей базы данных, переменных и т. Д., Многие проблемы вроде этого просто исчезают ... –

+0

Нет, это может быть более двух десятичных знаков - как числа? Целые? Это должно быть двойное значение – MKX2015

ответ

1

попробуйте добавить этот код

form1.colStorList.FormatInfo = new CultureInfo("en-US"); 

после

form1.colStorList.ValueMember = "Column"; 
+0

Wow - Это решило проблему. Большое спасибо! Но он все еще не находит значения в моей базе данных, поэтому должно быть что-то еще. Благодаря! – MKX2015