qt5.5.1连接成功Mysql,但是读不出数据

Walker_in_code 2017-05-04 07:46:15
我用的Mysql server 5.0
在qt中能用数据库中的用户登录而且也能打开database,但是从表中读取数据就是空的(错误显示的是(QSqlQuery::value: not positioned on a valid record),意思就是读的是空的,但是我又从MySQL端中查找到表中实际有数据.
这是怎么回事? 就好像能登陆但是不能读东西一样.
我的qt连接数据库是在qt的bin目录下放入MySQL的libmysql.dll,因为qt5.0以上自带MySQL驱动所以我就没有编驱动,用的是qt本身plugins/sqldrivers 下的驱动,虽然能连上数据库但是我不知道对不对,会不会因此导致的我的问题.
求大神...

比如我成功连接数据库
然后我执行
QSqlQuery q;
q.prepare("select * from information");
q.exec();
q.first();
qDebug()<<q.value(0).toString();
在debug中显示
QSqlQuery::value: not positioned on a valid record
""

登录时候设置了database,该database中也有information表,表中也有数据.
...全文
582 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyq5945 2017-05-05
  • 打赏
  • 举报
回复
去下个QxEntityEditor试试是否可以。
sailing0123 2017-05-04
  • 打赏
  • 举报
回复
可参考下面的,可以继承QSqlQueryModel类 QSqlQueryModel *pModel = new QSqlQueryModel(this); pModel->setQuery(db); // 防止fetch到了256行就停止了 while(pModel->canFetchMore()) { pModel->fetchMore(); } qint32 count = pModel->rowCount(); qDebug() << __FUNCTION__ << " rowCount " << count; for(qint32 i = 0; i < count; ++i) { QSqlRecord record = projModel->record(i); qDebug() << record.value(0) .toString(); }
Walker_in_code 2017-05-04
  • 打赏
  • 举报
回复
引用 1 楼 zyq5945 的回复:
需要调用next移动记录集。

      QSqlQuery query("SELECT country FROM artist");
      while (query.next()) {
          QString country = query.value(0).toString();
          doSomething(country);
      }
还是那个结果...
zyq5945 2017-05-04
  • 打赏
  • 举报
回复
需要调用next移动记录集。

      QSqlQuery query("SELECT country FROM artist");
      while (query.next()) {
          QString country = query.value(0).toString();
          doSomething(country);
      }

16,199

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧