gpt4 book ai didi

c# - 如何一般地格式化 OracleNumber

转载 作者:行者123 更新时间:2023-11-30 17:20:19 24 4
gpt4 key购买 nike

我为 Oracle 构建了一个带有 CSV 导出功能的小型查询工具,并使用 OracleDataAdapter 来填充显示在 DataGrid (WinForms) 中的数据集。起初我使用 .NET 类型(DateTime、decimal、string...),但在某些情况下我遇到了溢出异常,因为 Oracle (NUMBER(30,10)) 中的精度更高。因此,我必须在 OracleDataAdapter 中设置属性 ReturnProviderSpecificTypes = true,所以现在它使用 OracleClient(OracleNumber、OracleBoolean、OracleString,...)类型来代替。

问题是,当我在 nl-BE 区域时(我们使用逗号作为小数点分隔符,点作为千位分隔符),所有内容始终(在屏幕上和 CSV 输出期间)本地化为 en-US 格式。 CSV 中的列分隔符是分号 btw,因此不会干扰十进制数字中的逗号。

那么有没有一种方法可以针对这些类型重写 ToString 方法?某种注入(inject)格式化引擎?

谢谢

最佳答案

您可以使用 ALTER SESSION SET NLS_...。看:http://download.oracle.com/docs/cd/B28359_01/olap.111/b28126/dml_options072.htm

有一个示例说明它如何使用点和小数点以及空格作为千​​位分隔符(还要注意日期时间设置):

alter session set NLS_NUMERIC_CHARACTERS='. '
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS'

关于c# - 如何一般地格式化 OracleNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com