System.Data.OleDb.OleDbException:条件表达式中的数据类型不匹配

 gjagtm2502855737 发布于 2023-02-12 15:18

这是我的代码:

OleDbCommand Cmd = new OleDbCommand();
Cmd.Connection = MyConn;
Cmd.CommandText = "SELECT * FROM catalogue WHERE id = '" + questionid + "'";

OleDbDataReader read = Cmd.ExecuteReader();

int id = 0;

while (read.Read())
{
    id = Convert.ToInt32(read["id"]);
}

这是它给我的错误:

Line 27:         Cmd.CommandText = "SELECT * FROM catalogue WHERE id = '" + questionid + "'";
Line 28: 
Line 29:         OleDbDataReader read = Cmd.ExecuteReader(); // The error is here
Line 30: 
Line 31:         int id = 0;

我知道在Stack Overflow上还有另一个关于同一问题的问题,但它似乎没有解决我的问题(它可以解决你的问题,所以我放了一个链接).

1 个回答
  • 请了解如何使用块来处理所有易处理文件,包括数据库连接,命令和阅读器.

    您的代码容易受到sql注入攻击,您可能希望通过使用参数来修复它.

    最后,我怀疑数据库中的id字段是整数类型,因此在值周围使用引号是错误的.但请阅读参数而不是修复它.无论如何,参数将摆脱这个问题.

    2023-02-12 15:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有