• 5511阅读
  • 3回复

[提问]sqlite select 查询中有中文关键字 [复制链接]

上一主题 下一主题
离线feixiangxtu
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-12
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
我用qsqlite数据库, 然后用Qquery去数据里查询数据, 但是我sql语句里含有中文, 总是查不到数据. 怎么办?
select * from table1 where name = '张三'

我用tr将查询语句括起来也不可以。
query.exec(tr("SELECT COUNT(*) FROM history WHERE Type LIKE '故障%' ));

求解?
谢谢!
离线voidbroken

只看该作者 1楼 发表于: 2011-04-12
首先确定你的'张三'是什么字符集的,看看数据库中的数据是什么字符集的
离线feixiangxtu

只看该作者 2楼 发表于: 2011-04-12
    QSqlQuery query(db);
    int tempIdx = 0;
    query.exec("SELECT COUNT(*) FROM history WHERE Type LIKE 'Trouble%'");

    if (query.next()){
      tempIdx =  query.value(0).toInt();
    }
我用上面的语句来得到数据库中类型为Trouble的所有记录。不知是否有错?
谢谢
离线波心月
只看该作者 3楼 发表于: 2011-04-28

  QSqlQuery 类可以直接执行任何 SQL 语句,也可以在 SELECT 语句所生成的结
果集中切换。在以下示例中,我们使用  QSqlQuery::next() 来执行查询并切换查询结果集:  

while (query.next())
qDebug()< < query.value(0);

可以输出select选中 结果数据 中的第一列
如果查看一共有几列 可以用query.record.count() 查看
快速回复
限100 字节
 
上一个 下一个