我为 Oracle 构建了一个带有 CSV 导出功能的小型查询工具,它带有一个 OracleDataAdapter 来填充显示在 DataGrid (WinForms) 中的数据集。起初我使用 .NET 类型(DateTime、decimal、string、...),但在某些情况下,由于 Oracle ( NUMBER(30,10)
) 中的精度更高,我得到了溢出异常。因此我必须ReturnProviderSpecificTypes = true
在 OracleDataAdapter 中设置属性,所以现在它使用 OracleClient (OracleNumber, OracleBoolean, OracleString,...) 类型。
问题是当我在 nl-BE 区域时(我们使用逗号作为小数分隔符,点作为千位分隔符),所有内容总是本地化(在屏幕上和 CSV 输出期间)为 en-US 格式。CSV 中的列分隔符是分号 btw,因此十进制数字中的逗号不会受到干扰。
那么有没有办法以某种方式覆盖这些类型的 ToString 方法?某种注入格式化引擎?
谢谢