找回密码
 立即注册
收起左侧

qt查找数据库中的数据的问题

0
回复
4250
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2015-6-11 14:22:38 显示全部楼层 |阅读模式
最近用qt在写一个查询界面,连接数据库的头文件是这样的
  1. #ifndef GGG_H
  2. #define GGG_H
  3. #include <QtSql>
  4. #include <QMessageBox>

  5. static bool connect ()
  6. {
  7. bool Iist=QFile::exists("mydb.dat");
  8. //连接数据库,如果不存在则新建一个
  9.     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  10.     db.setDatabaseName("mydb.dat");
  11.     if(!db.open())
  12.     {
  13. //如果无法打开则报错
  14.         QMessageBox::warning(0,"title","打开数据库失败");
  15.         return false;
  16.     }

  17.     if(Iist==false)
  18.     {
  19.         QSqlQuery query;
  20.         query.exec("create table t_user(f_id,f_name,f_phone);");
  21.         query.exec("insert into t_user(f_id,f_name,f_phone)values(1,<font color="#8b0000">'gone','henry'</font>);");
  22.         query.exec("insert into t_user(f_id,f_name,f_phone)values(2,<font color="#8b0000">'wings','cindy'</font>);");
  23.         query.exec("insert into t_user(f_id,f_name,f_phone)values(3<font color="#8b0000">,'labor','mike'</font>);");
  24.     }
  25.     return true;
  26. }

  27. #endif // GGG_H
复制代码
实现查询部分的代码是这样的
  1. void MainWindow::on_SearchButton_clicked()
  2. {
  3.     QString word=ui->searchLineEdit->text();
  4.     QSqlQueryModel *model = new QSqlQueryModel;
  5.     model->setQuery(QString("select * from t_user WHERE f_name='%1' ").arg(word));
  6.     model->setHeaderData(0, Qt::Horizontal, "ID");
  7.     model->setHeaderData(1, Qt::Horizontal, "Name");
  8.     model->setHeaderData(2, Qt::Horizontal, "Phone");

  9.     ui->tableView->setModel(model);
  10.     ui->tableView->show();

  11. }
复制代码
出来的效果是这样的


但那个头文件的代码是我在网上复制粘贴的
原来是这样的
  1. #ifndef GGG_H
  2. #define GGG_H
  3. #include <QtSql>
  4. #include <QMessageBox>

  5. static bool connect ()
  6. {
  7. bool Iist=QFile::exists("mydb.dat");
  8. //连接数据库,如果不存在则新建一个
  9. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  10. db.setDatabaseName("mydb.dat");
  11. if(!db.open())
  12. {
  13. //如果无法打开则报错
  14. QMessageBox::warning(0,"title","打开数据库失败");
  15. return false;
  16. }

  17. if(Iist==false)
  18. {
  19. QSqlQuery query;
  20. query.exec("create table t_user(f_id,f_name,f_phone);");
  21. query.exec("insert into t_user(f_id,f_name,f_phone)values(1,<font color="#8b0000">'<span style="line-height: 1.5;">henry</span></font><span style="line-height: 1.5;"><font color="#8b0000">','777565'</font>);");</span>
复制代码
里面的数据就可以搜索,比如这样


想请问为什么里面的数据更改不了呢

我用的是qt自带的sqlite数据库


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了