1

我在 SQL Server 表中插入了几个值。当我从前端获取值时,它们是字符串。所以我需要先将它们转换为int第一个,然后才能将它们插入表中。

我正在使用这段代码:

Int64 x = Convert.ToInt64(some string value);

我想将此x插入表中,插入类型为 的列中numeric(18,0)

进行此转换时,出现错误

将参数值从 int64 转换为 int32 失败

而我所有的值都在 1000 左右。

4

3 回答 3

4

使用int x = Convert.ToInt32(some string value)它应该可以工作。

您的数据库需要 type 的值Int32。SQL Server 不会将 64 位数字隐式转换为 32 位数字,因为可能会丢失信息。

于 2012-10-23T07:29:44.727 回答
2

Int64范围 from−9,223,372,036,854,775,8089,223,372,036,854,775,807,如您所见,它有 19 个字符长(不包括逗号),因此它不适合您的 18 数字范围。如果您真的想使用1000Int64等小数字,您应该修改您的列到数据类型bigint

于 2012-10-23T07:31:38.337 回答
0

对于 sql server 端的 System.Int64 (long),您必须使用 bigint 数据类型。http://msdn.microsoft.com/en-us/library/ms187745.aspx

于 2012-10-23T07:35:12.780 回答