c # строка в sqlstring теряет формат - PullRequest
0 голосов
/ 06 августа 2011

У меня есть функция SQL CLR, которая получает SQLString, и я преобразую строку Sql в строку ac # с помощью .ToString(), затем после некоторых вычислений я хочу вернуть строку, содержащую doubles

   [Microsoft.SqlServer.Server.SqlFunction]
   public static string FuncCS(SqlString SQLstr){
   string CSstr = SQLstr.ToString();

     /*DO SOME STUFF*/
    for (int j = 0; j < S.ColumnCount; j++){
        for (int i = 0; i < S.RowCount; i++){
            CSstr += S[i, j].ToString("F5") + " ,  \t"; 
        }           
    }
  }

Затем в SQL я получаю строку, но парные числа теряют свою десятичную точку и заменяются запятой:

РЕЗУЛЬТАТ:

149,50625 0,00000 0,00000 0,00000 0,00000 69,06880 0,00000 0,00000 0,00000 0,00000 31,61588 0,00000 0,00000 0,00000 0,00000 8,82157 

ЧТО НУЖНО:

14.9506245839579,0,0,0,0,6.90687968992126,0,0,0,0,3.16158756810842,0,0,0,0,0.88215732592823

Что я могу изменить в цикле for?

Ответы [ 2 ]

4 голосов
/ 06 августа 2011

я бы вообразил "культуру";попробуйте использовать ToString("F5", CultureInfo.InvariantCulture)

Также - посмотрите на StringBuilder для построения строки в цикле.

1 голос
/ 06 августа 2011

Каков результат, если вы просто используете

CSstr += S[i, j] + " ,  \t";

...