在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字段除了普通数字之外不需要任何东西。 有什么办法可以补救这个英镑符号?

谢谢!

你不能只是改变数字格式,所以它在CI​​TIZEN_ID字段中的每个数字之前显示一个'#'。

这不能解决你陈述的问题..但它避免了它:-)

更新:这个StackOverflow的问题( Excel单元格格式 )谈到单元格格式使用C#

这听起来像你正在尝试使用SQL来INSERT一个文本值到DBMS(Access数据库引擎)看作是DOUBLE FLOAT并因此得到types不匹配错误。 您可以更改registry值来说服引擎将该列视为文本,请参阅:

外部数据 – 混合数据types