【问题标题】:Datatype mismatch in query expression with OleDbCommand查询表达式中的数据类型与 OleDbCommand 不匹配
【发布时间】:2011-05-09 20:26:37
【问题描述】:
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 是数字,我会在查询表达式中得到数据类型不匹配。如何使它与数字一起使用?

【问题讨论】:

    标签: c# sql oledb oledbconnection


    【解决方案1】:

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

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

    但是,由于这是 MS Access,最好的办法是使用 & 连接

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

    【讨论】:

    • 你知道如何在查询中转换它吗? Zip 是一个数据库列...我尝试过 CAST([Zip] AS varchar(20)) 和其他组合,但到目前为止没有运气
    • 它是一个带有 .mdb 扩展名的 Access DB
    • 非常感谢您的回答和时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多