我应该使用什么时候处理一个值在c#,这是一个SQL Server数据库的大int ?
当前回答
我刚刚有一个脚本,返回一个插入的主键,并使用
SELECT @@identity
在我的bigint主键,我得到一个转换错误使用长-这就是为什么我开始这个搜索。至少在我的例子中,正确的答案是选择返回的类型是NUMERIC,这相当于一个十进制类型。使用long类型会导致强制转换异常。
这就是为什么要在不止一个谷歌搜索(甚至Stack Overflow!)中检查你的答案。
引用一位帮助过我的数据库管理员的话:
... BigInt和INT64是不一样的,不管它们看起来有多相似。部分原因是SQL经常将Int/BigInt转换为Numeric作为正常处理的一部分。所以当它转到OLE或。net时,所需的转换是NUMERIC到INT。 我们通常不会注意到,因为打印的值看起来是一样的。
其他回答
我认为等效的是Int64
使用长数据类型。
我刚刚有一个脚本,返回一个插入的主键,并使用
SELECT @@identity
在我的bigint主键,我得到一个转换错误使用长-这就是为什么我开始这个搜索。至少在我的例子中,正确的答案是选择返回的类型是NUMERIC,这相当于一个十进制类型。使用long类型会导致强制转换异常。
这就是为什么要在不止一个谷歌搜索(甚至Stack Overflow!)中检查你的答案。
引用一位帮助过我的数据库管理员的话:
... BigInt和INT64是不一样的,不管它们看起来有多相似。部分原因是SQL经常将Int/BigInt转换为Numeric作为正常处理的一部分。所以当它转到OLE或。net时,所需的转换是NUMERIC到INT。 我们通常不会注意到,因为打印的值看起来是一样的。
这对应于long(或Int64),一个64位整数。
尽管如果来自数据库的数字恰好足够小,并且您不小心使用了Int32等等,那么就不会有问题。但Int64肯定会hold住它。
如果你使用更小的东西,而需要完整的尺寸,你得到的错误是什么?堆栈溢出!耶!
在c#中,大多数情况下它是long(int64)
推荐文章
- SQL Server:过滤sp_who2的输出
- 驻留在App_Code中的类不可访问
- 在链式LINQ扩展方法调用中等价于'let'关键字的代码
- dynamic (c# 4)和var之间的区别是什么?
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- Sql Server字符串到日期的转换
- 返回文件在ASP。Net Core Web API
- 自定义HttpClient请求头
- 如果我使用OWIN Startup.cs类并将所有配置移动到那里,我是否需要一个Global.asax.cs文件?
- VS2013外部构建错误"error MSB4019: The imported project <path> was not found"
- 从另一个列表id中排序一个列表
- 等待一个无效的异步方法
- 无法加载文件或程序集…参数不正确
- c#中枚举中的方法