使用OleDbCommand在查询表达式中数据类型不匹配

时间:2011-05-09 20:26:37

标签: c# sql oledb oledbconnection

char zoneCH = '-'; 
string insertString = "UPDATE streets set TmpColumn=City+'" + zoneCH + "'+State+'" +zoneCH +"'+Zip WHERE 1"; 
OleDbCommand com1 = new OleDbCommand(insertString, mdbConnection);
com1.ExecuteNonQuery();

如果Zip是一个字符串,这将有效,但如果Zip是一个数字,我在查询表达式中得到的数据类型不匹配。如何使用数字使其工作?

1 个答案:

答案 0 :(得分:2)

可能是因为它试图添加而不是连接。不同的DB处理方式不同。有些人使用左侧来确定它应该做什么。

您应该将Zip显式地转换为字符串,然后就可以了

然而,由于这是MS Access,最好的选择是使用&连接

string insertString = "UPDATE streets set TmpColumn=City & '" + zoneCH + "'& State &'" +zoneCH +"'& Zip WHERE 1"