在c#中,与bigint相当的是什么?

我应该使用什么时候处理一个值在c#,这是一个SQL Server数据库的大int ?

284130 次浏览

Int64直接映射到BigInt

Source .

使用长数据类型。

我认为等效的是Int64

它对应于(或Int64),一个64位整数。

尽管如果来自数据库的数字恰好足够小,并且您不小心使用了Int32等等,那么就不会有问题。但是Int64肯定会保存它。

如果你使用更小的东西,而需要完整的尺寸,你得到的错误是什么?堆栈溢出!耶!

我刚刚有一个脚本,返回一个插入的主键,并使用

SELECT @@identity

在我的bigint主键,我得到一个转换错误使用长-这就是为什么我开始这个搜索。至少在我的例子中,正确的答案是选择返回的类型是NUMERIC,这相当于一个十进制类型。使用long类型会导致强制转换异常。

这就是为什么要在不止一个谷歌搜索(甚至Stack Overflow!)中检查你的答案。

引用一位帮助过我的数据库管理员的话:

< p >…BigInt和INT64是不一样的,不管它们看起来有多相似。部分原因是SQL经常将Int/BigInt转换为Numeric作为正常处理的一部分。所以当它转到OLE或。net时,所需的转换是NUMERIC到INT。

我们通常不会注意到,因为打印的值看起来是一样的

我处理一个bigint数据类型显示在一个DataGridView,并使它像这样

something = (int)(Int64)data_reader[0];

可以使用long类型或Int64类型

sql中的int直接映射到int32,也称为基本类型,即c#中的int

Sql Server中的长整型数字直接映射到int64,也称为基本类型,即c#中的

在这里定义了biginteger到integer的显式转换

在c#中,大多数情况下它是long(int64)

如果你在数据库表中使用长整型数字,你可以在c#中使用

int(64)或long Datatype等价于BigInt。

我设法转换(bigint)值从DB返回使用convert . toint64。

var Id = Convert.ToInt64(identityAsTable.Rows[0].Field<object>(0));