c#string到sqlstring丢失格式

本文关键字:格式 sqlstring c#string | 更新日期: 2023-09-27 18:04:36

我有一个SQL CLR函数,它接收一个SQLString,我正在用.ToString()将SQL字符串转换为c#字符串,然后在进行一些计算后,我想返回一个包含doubles的sring

   [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循环中要更改什么?

c#string到sqlstring丢失格式

我会想象"文化";尝试使用ToString("F5", CultureInfo.InvariantCulture)

另外,看看StringBuilder在循环中构建字符串。

如果只使用,结果是什么

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