c#转换bigint十进制

时间:2012-09-26 17:30:35

标签: c# decimal bigint

我正在使用sql server 2005数据库处理c#应用程序。 从数据库转换为数字引导器的值的最佳方法是什么,不知道来自基数的值是小数还是bigint?

        if (dataReader.IsDBNull(0) == false) {
            PLAYER.PLAYER_ID = dataReader.GetDecimal(0);
        }

在我的PLAYER对象中,PLAYER_ID是十进制类型。

我使用两个不同的数据库,因此,来自基数的值可以是bigint或decimal。如果这是十进制,则没有问题,但如果它是一个bigint,我会收到一个错误。

3 个答案:

答案 0 :(得分:2)

您应该能够使用GetFieldType方法来确定对象的数据类型。

答案 1 :(得分:1)

您可以使用GetFieldType来确定类型

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getfieldtype.aspx

Type type = dataReader.GetFieldType(0);

然后,您可以使用适当的读取器方法读取数据。

您可能希望避免为每一行调用GetFieldType。在开始读取行之前调用它,并设置一个标志,指示此特定查询返回的类型。

答案 2 :(得分:0)

使用Decimal.TryParse

decimal tempID;

Decimal.TryParse(dataReader[0], out tempID);
PLAYER.PLAYER_ID = tempID;

它应该将值转换为小数,除非它为null。如果它的空小数将保持为0。

相关问题