【问题标题】:OleDbException was unhandled - Data type mismatch for Int-Field TypeOleDbException 未处理 - Int-Field 类型的数据类型不匹配
【发布时间】:2012-10-02 16:04:06
【问题描述】:

我有一个空闲表 My_Table1。 My_Table1 具有以下字段

Field-Name  ->  sl_no Integer - Width 4

因此,当我通过 OleDb 插入时,从 c# 中会出现类似

的错误
"Data Type Mismatch"

我的 OleDbCommand 是

int a1 = 3;

OleDbCommand OleCmd1 = new System.Data.OleDb.OleDbCommand("Insert into My_Table1 values('"+a1+"')", OleCon1)

感谢您的帮助

【问题讨论】:

  • 尝试删除单引号,因为它是整数值而不是字符串值。

标签: c# oledb dbf visual-foxpro


【解决方案1】:

INSERT 语句正在插入一个字符值'a1'。这不能存储在整数字段中。如果a1 是代码中的一个变量,那么也许你正在寻找这个:

System.Data.OleDb.OleDbCommand("Insert into My_Table1 values("+a1.ToString()+")", OleCon1)

从“最佳实践”的角度来看,最好使用参数化查询来养成避免 SQL 注入攻击问题的习惯。对于整数值,上面的语句可能还可以,但通常不太适合用简单的连接构建 SQL 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多