我在 SQL Server 表中插入了几个值。当我从前端获取值时,它们是字符串。所以我需要先将它们转换为int
第一个,然后才能将它们插入表中。
我正在使用这段代码:
Int64 x = Convert.ToInt64(some string value);
我想将此x
插入表中,插入类型为 的列中numeric(18,0)
。
进行此转换时,出现错误
将参数值从 int64 转换为 int32 失败
而我所有的值都在 1000 左右。
我在 SQL Server 表中插入了几个值。当我从前端获取值时,它们是字符串。所以我需要先将它们转换为int
第一个,然后才能将它们插入表中。
我正在使用这段代码:
Int64 x = Convert.ToInt64(some string value);
我想将此x
插入表中,插入类型为 的列中numeric(18,0)
。
进行此转换时,出现错误
将参数值从 int64 转换为 int32 失败
而我所有的值都在 1000 左右。
使用int x = Convert.ToInt32(some string value)
它应该可以工作。
您的数据库需要 type 的值Int32
。SQL Server 不会将 64 位数字隐式转换为 32 位数字,因为可能会丢失信息。
Int64
范围 from−9,223,372,036,854,775,808
到9,223,372,036,854,775,807
,如您所见,它有 19 个字符长(不包括逗号),因此它不适合您的 18 数字范围。如果您真的想使用1000Int64
等小数字,您应该修改您的列到数据类型bigint
。
对于 sql server 端的 System.Int64 (long),您必须使用 bigint 数据类型。http://msdn.microsoft.com/en-us/library/ms187745.aspx