在C#中使用非数字数据更新Excel单元
我有一个查询是
ExcelQuery = "Update [Sheet1$] " +"set CITIZEN_ID = #" + value + " where CITIZEN_ID = " + value;
正如你所看到的,我基本上只是在CITIZEN_ID字段前加一个“#”。 值是一个整数/数值。 所以如果我在CITIZEN_ID列中有“256”,它会被转换成“#256”
当我执行此操作时,我Syntax error in date in query expression
得到了一个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字段除了普通数字之外不需要任何东西。 有什么办法可以补救这个英镑符号?
谢谢!
你不能只是改变数字格式,所以它在CITIZEN_ID字段中的每个数字之前显示一个'#'。
这不能解决你陈述的问题..但它避免了它:-)
更新:这个StackOverflow的问题( Excel单元格格式 )谈到单元格格式使用C#
这听起来像你正在尝试使用SQL来INSERT
一个文本值到DBMS(Access数据库引擎)看作是DOUBLE FLOAT
并因此得到types不匹配错误。 您可以更改registry值来说服引擎将该列视为文本,请参阅:
外部数据 – 混合数据types