【问题标题】:How can i get Oracle number values to .NET without Zeros?如何在没有零的情况下将 Oracle 数值获取到 .NET?
【发布时间】:2012-06-11 13:25:07
【问题描述】:

我尝试从 Oracle 数据库中读取数据。 问题是在某些情况下接收数据在数字后添加零,我不知道为什么会发生这种情况?!?

例如我想读取这样的数据

1

1,1

1,12

1,123

当我用 Oracle-Datareader 阅读它时,我得到了

1

1,10

1,12

1,1230

每次小数位为 1,3,5,7 时,它都会在结果中添加一个 0。 但是为什么会这样?? 有人知道这种问题吗?

编辑:

Dim cmd As OracleCommand = New OracleCommand(Select_Statement, Connection)

Dim dr As OracleDataReader

dr = cmd.ExecuteReader


While dr.Read()

            If dr("C1").ToString = V1 Then

                Me.Txt_1.Text = dr.GetDecimal(3).ToString("G0")

                Me.Txt_2.Text = dr(c4)

                Me.Txt_3.Text = dr(c5)

                Me.Txt_4.Text = dr(c6)


            End If

            If dr("C2").ToString = V2 Then

                Me.Txt_5.Text = dr(c3)

                Me.Txt_6.Text = dr(c4)

                Me.Txt_7.Text = dr(c5)

                Me.Txt_8.Text = dr(c6)


            End If

        End While

dr.Close()

这是我从数据库中读取数据的方式,如果有更好的方式,我会很高兴一些提示!因为使用 dr.GetDecimal() 的方式只排除行索引的数字。

【问题讨论】:

  • 除非您将数字存储在字符串中,否则这到底是个问题,这本身就是一个问题?
  • oracle DB中字段的精度是多少?
  • 精度和Scale没有设置,为null,Data_length为22
  • 问题是我读取值并将它们显示在文本框中,当我在数据库中保存 1,9 时我得到 1,90,但我想成为 1,9 进入文本框无需使用 CDbl 进行转换。数据库或oracedatareader本身一定有解决方案?

标签: c# .net oracle numbers decimal


【解决方案1】:

它在 C# 中,而不是在 DB 中。

来自Documentation

如果 format 为 null 或空字符串,则 this 的返回值 实例使用通用数字格式说明符 (G) 进行格式化

general format 包含您要避免的零。
如果您想删除它,只需执行以下操作:

string sd = dr.GetDecimal(0).ToString("G0");

dr 是我的 OracleDataReader

【讨论】:

  • 好的,谢谢,现在我明白了,但这与使用 CDbl() 的结果相同,是否有任何通用选项可以在整个项目中为带有 toString 数字的数据读取器设置此行为?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多