我正在使用带有Windows任务调度程序的基本控制台应用程序。
程序从网络中获取一些十进制值并保存在SQL Server表中。
当我手动运行程序时,十进制格式没有问题。
如果任务调度程序运行程序,它将读取它们(我在这里猜测)为int。
示例:
我尝试将其转换为字符串替换","用"。"。
decimal valueKur = 0;
valueKur = Convert.ToDecimal(xmlDoc.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/BanknoteSelling", item)).InnerXml);
mevcutKur.KurValue = valueKur;
db.SaveChanges();
提前致谢
答案 0 :(得分:5)
听起来你已经使用字符串连接来更新数据库中的数据。基本上:永远不要那样做。如果您使用SQL 参数(SET whatever=@whatever
等),那么数据库将不会需要进行任何字符串解析,并且不会产生混淆 - 特别是在i18n / l10n问题上,例如逗号/句点是否为组分隔符或小数点。同样,将存储为数据库中的十进制类型(不是字符串/ char / etc类型),将其作为十进制类型读出,等等。
当您将内容视为文本时,一切都取决于您的区域设置 - 并且调度程序的区域设置不一定是您想到的区域设置。