我有一个问题是
ExcelQuery = "Update [Sheet1$] "
+"set CITIZEN_ID = #" + value
+ " where CITIZEN_ID = " + value; 如您所见,我基本上只是在CITIZEN_ID字段前面加上一个"#“。value是整型/数字型值。因此,如果我在CITIZEN_ID列中有"256“,它将被转换为"#256”。
当我执行它时,我得到一个OleDbException Syntax error in date in query expression,所以我用单引号将查询的一部分括起来,如下所示
ExcelQuery = "Update [Sheet1$] "
+"set CITIZEN_ID = '#" + value + "' "
+"where CITIZEN_ID = " + value; 这样,我就得到了另一个OleDbException,这次是用Data type mismatch in criteria expression.
我猜是出于某种原因,CITIZEN_ID字段不想接受除普通数字以外的任何参数。有没有什么办法可以纠正这个问题,把那个井号放进去?
谢谢!
发布于 2010-03-24 14:00:34
您就不能更改数字格式,使其在CITIZEN_ID字段中的每个数字前显示一个“#”吗?
这并不能解决你所说的问题。但它避免了它:-)
更新:此StackOverflow问题( excel-cell-formatting)讨论使用C#设置单元格格式
发布于 2010-03-25 17:30:28
这听起来像是在尝试使用SQL语句将一个文本值INSERT到一个列中,而该列被DBMS ( Access数据库引擎)视为DOUBLE FLOAT,并因此得到一个类型不匹配错误。您可以更改注册表值以说服引擎将该列视为文本,请参见:
External Data - Mixed Data Types
https://stackoverflow.com/questions/2505547
复制相似问题