还有其他问题有类似的声音标题,但我的情况似乎是独一无二的,所以这里是:
这个问题似乎集中在我的表中使用十进制值。如果我创建一个表并省略精度和比例参数,则表会创建,但我的所有数据都将作为整数值插入。如果我创建一个表并指定Precision和Scale参数,我会在SQL语句下面抛出异常。
这是我的Create Table语句:
CREATE TABLE RMCoil
(
ID int IDENTITY (100,1) PRIMARY KEY
, Modified DateTime NOT NULL
, [Type] nchar(1)
, [Model] nvarchar(50)
, [CPPartNo] nvarchar(50)
, [FH] decimal(10,10)
, [FL] decimal(10,10)
, [FPI] int
, [TR] nchar(1)
, [FinThk] decimal(10,10)
, [FinMat] nchar(1)
, [TubeOD] int
, [Rifled] nchar(1)
, [WallThk] decimal(10,10)
, [CKT] int
, [RD] int
, [Split] nvarchar(50)
, [CKT1] int
, [CKT2] int
, [CKT3] int
, [CKT4] int
, [Feed1] int
, [Feed2] int
, [Feed3] int
, [Feed4] int
, [Altitude] decimal(10,10)
, [Connection] decimal(10,10)
, [Header] decimal(10,10)
)
SqlCeCommand.ExecuteNonQuery()返回-1,但这必须正常,因为它会创建表。
如果存在表,则SELECT语句可以正常工作:
SELECT
ID
, Modified
, [ID]
, [MODIFIED]
, [Model]
, [VoltCode]
, [Vendor]
, [Product]
, [ACRLA208SP]
, [LRA208SP]
, [ACRLA230SP]
, [LRA230SP]
, [ACRLA208]
, [LRA208]
, [ACRLA230]
, [LRA230]
, [ACRLA380]
, [LRA380]
, [ACRLA460]
, [LRA460]
, [ACRLA575]
, [LRA575]
, [ECRLA208]
, [ECRLA230]
, [ECRLA460]
, [ECRLA575]
, [Displacement]
, [CF0]
, [CF1]
, [CF2]
, [CF3]
, [CF4]
, [CF5]
, [CF6]
, [CF7]
, [CF8]
, [CF9]
, [CF10]
, [CF11]
, [CF12]
, [CF13]
, [CF14]
, [CF15]
, [CF16]
, [CF17]
, [CF18]
, [CF19]
, [CF20]
, [CF21]
, [CF22]
, [CF23]
, [CF24]
, [CF25]
, [CF26]
, [CF27]
, [CF28]
, [CF29]
, [CF30]
, [CF31]
, [CF32]
, [CF33]
, [CF34]
, [CF35]
, [CF36]
, [CF37]
, [CF38]
, [CF39]
FROM RMCompressor
SqlCeCommand.CommandText.Length = 633
INSERT INTO RMCompressor
(
Modified
, [Model]
, [VoltCode]
, [Vendor]
, [Product]
, [ACRLA208SP]
, [LRA208SP]
, [ACRLA230SP]
, [LRA230SP]
, [ACRLA208]
, [LRA208]
, [ACRLA230]
, [LRA230]
, [ACRLA380]
, [LRA380]
, [ACRLA460]
, [LRA460]
, [ACRLA575]
, [LRA575]
, [ECRLA208]
, [ECRLA230]
, [ECRLA460]
, [ECRLA575]
, [Displacement]
, [CF0]
, [CF1]
, [CF2]
, [CF3]
, [CF4]
, [CF5]
, [CF6]
, [CF7]
, [CF8]
, [CF9]
, [CF10]
, [CF11]
, [CF12]
, [CF13]
, [CF14]
, [CF15]
, [CF16]
, [CF17]
, [CF18]
, [CF19]
, [CF20]
, [CF21]
, [CF22]
, [CF23]
, [CF24]
, [CF25]
, [CF26]
, [CF27]
, [CF28]
, [CF29]
, [CF30]
, [CF31]
, [CF32]
, [CF33]
, [CF34]
, [CF35]
, [CF36]
, [CF37]
, [CF38]
, [CF39])
VALUES
(
GetDate()
, @Model
, @VoltCode
, @Vendor
, @Product
, @ACRLA208SP
, @LRA208SP
, @ACRLA230SP
, @LRA230SP
, @ACRLA208
, @LRA208
, @ACRLA230
, @LRA230
, @ACRLA380
, @LRA380
, @ACRLA460
, @LRA460
, @ACRLA575
, @LRA575
, @ECRLA208
, @ECRLA230
, @ECRLA460
, @ECRLA575
, @Displacement
, @CF0
, @CF1
, @CF2
, @CF3
, @CF4
, @CF5
, @CF6
, @CF7
, @CF8
, @CF9
, @CF10
, @CF11
, @CF12
, @CF13
, @CF14
, @CF15
, @CF16
, @CF17
, @CF18
, @CF19
, @CF20
, @CF21
, @CF22
, @CF23
, @CF24
, @CF25
, @CF26
, @CF27
, @CF28
, @CF29
, @CF30
, @CF31
, @CF32
, @CF33
, @CF34
, @CF35
, @CF36
, @CF37
, @CF38
, @CF39
)
SqlCeException: Expression evaluation caused an overflow. [ Name of function (if known) = ]
HResult: -2147217900
NativeError: 25901
来源: SQL Server Compact ADO.NET Data Provider
有谁知道如何阅读HResult或NativeError?
我的INSERT语句不是太长或什么的,是吗?
如果有帮助,我上传了我的Visual Studio 2010 C#项目 SqlCeTool (没有二进制文件)>> HERE <<(我将在解决此问题后删除我的项目链接)。< / p>
答案 0 :(得分:3)
您正在创建具有相同精度和比例的十进制值,是否有意?就目前而言,您正在创建像Altitude这样的字段,其中可以包含.0000000000到.9999999999的值(假设我算得正确)。我相信你会想要将你的精度和比例调整为高度(20,10)
Books On Line文章讨论Precision, Scale, and Length货币报价:“精确度是数字中的位数。比例是数字中小数点右边的位数。例如,数字123.45精度为5,刻度为2.“