转换数据类型SQL Server CE时出错
我有一个包含以下数据的对象:转换数据类型SQL Server CE时出错,sql,sql-server-ce,Sql,Sql Server Ce,我有一个包含以下数据的对象: { "ItemID": "0000000", "ConsignmentID": "0000000", "CountryCreateDate": "24/05/2013 3:20:02 a.m.", "Reference": "00000000", "Packaging": "0", "Weight": "0", "WeightCubic": "0", "Length": "0", "Width"
{
"ItemID": "0000000",
"ConsignmentID": "0000000",
"CountryCreateDate": "24/05/2013 3:20:02 a.m.",
"Reference": "00000000",
"Packaging": "0",
"Weight": "0",
"WeightCubic": "0",
"Length": "0",
"Width": "0",
"Height": "0",
"seqNumber": "0",
"DatePrinted": "",
"ad_Excess": "0",
"Price_Cost": "",
"Price_Other": "",
"Price_OtherTypeID": "",
"FailedReason": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"packedInCustomID": "",
"UpdateDateUTC": "6/06/2013 9:55:05 p.m.",
"PrintedByCustomerUserID": ""
}
这是使用ExecuteNonQuery
直接插入到SQL Server CE数据库中的,无论是插入方式还是插入方式都没有问题,并且经过了大量测试和使用
将此数据插入到具有以下架构的表中时,会出现错误:
从一种数据类型转换到另一种数据类型时出现语法错误。[表达式=]
我看了一遍又一遍数据,似乎没有什么不对劲的地方。我应该转换日期还是什么?所有内容都以类型NVarChar
插入,因为它们都是字符串
日期格式也采用d/MM/yyyy h:MM:ss tt
我使用的插入查询是:
INSERT INTO example
(
ItemID,
ConsignmentID,
CountryCreateDate,
Reference,
Packaging,
Weight,
WeightCubic,
Length,
Width,
Height,
seqNumber,
DatePrinted,
ad_Excess,
Price_Cost,
Price_Other,
Price_OtherTypeID,
FailedReason,
PackedInCustomID,
UpdateDateUTC,
PrintedByCustomerUserID
) VALUES (
@ItemID,
@ConsignmentID,
@CountryCreateDate,
@Reference,
@Packaging,
@Weight,
@WeightCubic,
@Length,
@Width,
@Height,
@seqNumber,
@DatePrinted,
@ad_Excess,
@Price_Cost,
@Price_Other,
@Price_OtherTypeID,
@FailedReason,
@PackedInCustomID,
@UpdateDateUTC,
@PrintedByCustomerUserID
)
您需要更改日期格式: 尝试20130524而不是2013年5月24日 SQL server认为您的日期所采用的格式不明确,因为某些国家/地区使用DD/MM,而其他国家/地区使用MM/DD,此处列出了可接受的格式:。 我通常使用'YYYYMMDD',但是破折号在那里很好
编辑:此外,数字数据类型不能接受空白字符串。您必须为Price\u Cost和Price\u其他字段选择不同的数据类型,或者为它们提供“0”而不是空字符串“”。您需要更改日期格式: 尝试20130524而不是2013年5月24日 SQL server认为您的日期所采用的格式不明确,因为某些国家/地区使用DD/MM,而其他国家/地区使用MM/DD,此处列出了可接受的格式:。 我通常使用'YYYYMMDD',但是破折号在那里很好
编辑:此外,数字数据类型不能接受空白字符串。您必须为Price\u Cost和Price\u其他字段选择不同的数据类型,或者为它们提供一个“0”而不是空字符串“”。在SqlCeDataAdapter中,选择命令在datetime之后使用.ToString()方法,格式如下:
CONVERT(DATETIME, '" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "', 102)";
在SqlCeDataAdapter中,选择命令在datetime之后使用.ToString()方法,格式如下:
CONVERT(DATETIME, '" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "', 102)";
?? 嗯。解释你的评论???嗯。解释你的评论?这看起来更像是一个评论,而不是一个答案。我会试试。你建议怎么做?数据从哪里来?服务器端。上面是它返回的json。我应该能弄明白。这是一条毫无帮助的错误信息,是吗?您能否通过一次将测试值插入一个字段来隔离导致失败的字段?这似乎更像是一个注释,而不是答案。我会试试。你建议怎么做?数据从哪里来?服务器端。上面是它返回的json。我应该能弄明白。这是一条毫无帮助的错误信息,是吗?您能否通过将测试值一次插入一个字段来隔离导致故障的字段?