代码之家  ›  专栏  ›  技术社区  ›  Asad

C中bigint的等价物是什么?

  •  177
  • Asad  · 技术社区  · 15 年前

    在C中处理值时应该使用什么,这对于SQL服务器数据库来说很重要?

    8 回复  |  直到 8 年前
        1
  •  296
  •   Peter Mortensen icecrime    9 年前

    对应于 长的 (或) 国际贸易64 ,一个64位整数。

    不过,如果数据库中的数字正好足够小,并且您不小心使用了Int32等,那么您就可以了。但是 英特64 一定会抓住它的。

    如果你用的是小一点的,而且需要全尺寸的,你会得到什么样的错误呢? 堆栈溢出! 耶!

        2
  •  54
  •   sshow Darron Smith    11 年前

    Int64 直接映射到 BigInt .

    Source

        3
  •  10
  •   Peter Mortensen icecrime    9 年前

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

    SELECT @@identity
    

    在我的bigint主键上,使用long会得到一个强制转换错误——这就是我开始搜索的原因。至少在我的例子中,正确的答案是,该select返回的类型是数字,相当于十进制类型。使用long将导致强制转换异常。

    这是在多个谷歌搜索(甚至在堆栈溢出时)中检查答案的一个原因。.

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

    …Bigint与Int64不一样,无论它们看起来多么相似。部分原因是,作为正常处理的一部分,SQL经常将int/bigint转换为numeric。所以当它转到OLE或.NET时,所需的转换是从数值转换为int。

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

        4
  •  4
  •   Otávio Décio    15 年前

    使用长数据类型。

        5
  •  4
  •   user5095242    9 年前

    你可以使用 long 类型或 Int64

        6
  •  2
  •   John Boker    15 年前

    我想相当于Int64

        7
  •  1
  •   Asim Khan    8 年前

    int 在SQL中,直接映射到 英特32 也被称为原始类型,即 int 在里面 C.* 反之

    大整数 在SQL中,直接映射到 英特64 也被称为原始类型,即 浮动 在里面 C.*

    如果已定义biginteger到integer,则显式转换 here

        8
  •  -1
  •   p.campbell    10 年前

    我正在处理一个要在DataGridView中显示的bigint数据类型,并将其设置为这样

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