2016-11-03 41 views
-1

我正在从sql服务器获取数据并使用c#编程导出到excel。基于列数据类型,我正在做cell的格式。在这里我遇到了一个问题。数据库数据类型转换问题

在sql服务器中,检索列数据类型被定义为数字(20,0)。在我的应用程序列中,类型即将以Decimal.I类型获取其他数字类型,如Double或Int64。有什么办法可以得到它吗?

+0

根本不清楚你在问什么,或者你在期待什么作为答案。对于您遇到的任何特定问题,请包括[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。另请阅读[我如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)。 – Igor

+0

你是如何从数据库中获取数据的?您是否使用DateReader,DataAdapter或其他ORM?最安全的方法可能是继续将它作为一个“十进制”,然后在C#中进行转换,以便处理任何溢出情况。 –

回答

0

由于数据库中的数据类型是数值型的,因此您有两个选项来获得double或int。

  1. 将数据库中的数据类型从数字更改为int。
  2. 以小数形式接收数据并将其舍入。为此,使用Math.Round作为Convert.ToInt32可以有一些意想不到的行为。