使用 QT 查询数据库时,语句 QString sql = QString('SELECT GID,gameName,gameNote,gamePrice,gameImage FROM [Game] WHERE gameName like '%%1%').arg(searchname); query.exec(sql); 仅返回一条结果,而数据库中存在多条符合查询条件的数据。

这可能是由于查询语句中的 LIKE 运算符使用不正确,或者数据库中的数据存在误差导致的。

可能的解决方法:

  1. 检查 LIKE 运算符的使用: 确保 LIKE 运算符的语法正确,例如:

    • 使用 % 作为通配符,表示任意字符。
    • 使用 _ 表示单个字符。
    • 使用 \ 转义特殊字符。
  2. 确认数据库数据: 检查数据库中是否存在符合查询条件的数据,例如使用数据库管理工具进行查询。

  3. 调试程序: 使用调试工具逐步跟踪程序执行过程,查看查询语句的实际执行结果,以定位问题所在。

  4. 使用其他方法进行查询: 如果以上方法无法解决问题,可以尝试使用其他方法进行查询,例如使用 QSqlQuery::prepare() 方法进行预处理查询。

建议:

  • 仔细检查查询语句的语法和逻辑,确保其正确无误。
  • 确保数据库中存在符合查询条件的数据。
  • 使用调试工具进行逐步排查,以定位问题所在。
  • 尝试使用其他方法进行查询,例如使用预处理语句。
QT 查询数据库只返回一条结果:LIKE 运算符使用问题

原文地址: https://www.cveoy.top/t/topic/mSJ1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录