【发布时间】:2015-07-29 21:43:47
【问题描述】:
在我的 C# 程序中,我使用带有 access 数据库的强类型数据集。在数据库的一个表中,我使用了一个双精度表。对于某些文化,访问使用逗号而不是点来表示双精度值。我可以毫无问题地读取该值(IE,如果访问使用逗号:“10,25”被读取为“10.25”双精度值)。但是当我想插入一个新值时,如果访问使用逗号并且其中一个值是小数,我会得到一个异常(IE“10”是插入,“10.25”抛出异常)。更新数据库时引发异常,而不是在数据集中创建新行时引发。
当我使用数据集时,我认为这些问题是由 .Net 自动处理的。
如何管理逗号/点(我认为我必须了解用户的文化,然后强制数据集使用它。但是如何?)?
PS:我无法改变计算机文化,所以我需要通过代码管理所有文化。
【问题讨论】:
-
请出示相关代码!您在代码中插入 10.25 的位置。
-
为什么你不能在使用 string.Format 函数和 string.Replace 的同时进行检查,以便如果一个包含
,将其替换为.或反之亦然以及字符串.包含功能,这可以完成显示一些代码..还有为什么您的数据库在定义数据类型/格式方面没有一致地设置..显示和保存是两件不同的事情,所以这可以完成 -
理想情况下,您应该设置应用程序,以便当当前文化使用
,而不是.时,它将自动处理。这可能会有所帮助:stackoverflow.com/questions/518625/… -
正如我在对 Olivier Jacot-Descombes 答案的评论中解释的那样,我看不到 sql 请求。我在我的代码中只使用了 double,然后将它们传递给自动创建的数据集代码。
标签: c# ms-access double point comma