SQL十进制格式

Bat*_*amb -1 c# sql sql-server decimal taskscheduler

我正在使用Windows任务调度程序的基本控制台应用程序.

该程序从网络中获取一些十进制值并保存在SQL Server表中.

当我手动运行程序时,十进制格式没有问题.

如果任务调度程序运行程序,它将读取它们(我在这里猜测)为int.

例:

  • 我运行程序时:3.7658 => 3.7658
  • Windows任务计划程序:3.7654 => 37658

我尝试将其转换为字符串,用"."替换",".

decimal valueKur = 0;

valueKur = Convert.ToDecimal(xmlDoc.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/BanknoteSelling", item)).InnerXml);

mevcutKur.KurValue = valueKur;
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

提前致谢

Mar*_*ell 5

听起来你已经使用字符串连接来更新数据库中的数据.基本上:永远不要那样做.如果您使用SQL 参数(SET whatever=@whatever等),那么数据库将不需要进行任何字符串解析,并且不会产生混淆 - 特别是在i18n/l10n问题上,例如逗号/句点是否为组分隔符或小数点.同样,将它作为十进制类型存储在数据库中(不是字符串/ char/etc类型),将其作为十进制类型读出,等等.

当您将事物视为文本时,一切都取决于您的语言环境 - 调度程序的语言环境不一定是您想到的语言环境.