QSqlQueryModel与QSqlTableModel查询数据库

2 篇文章 0 订阅

QSqlQueryModel 与 QSqlTableModel

项目中需要对数据进行查询与展示,数据量不大,使用的是sqlite数据库,将使用过程记录如下。

  1. QSqlTableModel 适用于显示整个表的数据,使用方式如下:

    ``

        QSqlQuery query;
        //把数据库的数据放入到tableview中
        QSqlTableModel *model= new QSqlTableModel(this);    
        model->setTable("TXXX"); //表的名称
        model->select(); 
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    	// 设置表中显示的表头
        model->setHeaderData(0, Qt::Horizontal, tr("编号"));
        model->setHeaderData(1, Qt::Horizontal, tr("单位名称"));
        model->setHeaderData(2, Qt::Horizontal, tr("部门名称"));
        ui->tableView->setModel(model);
    
  2. QSqlQueryModel 适用于显示查询的结果集,使用方式如下:

    ``

       QSqlDatabase  database = QSqlDatabase::database("xx");//连接的数据库名称
       QSqlQueryModel *model = new QSqlQueryModel(this);
       QSqlQuery query(database);
       QString str=QString("selece XXX XXX XXXXXXX");//要查询的数据语句
       if(query.exec(str)){
          model->setQuery(query);
          // 设置表中显示的表头
          model->setHeaderData(0, Qt::Horizontal, tr("编号"));
          model->setHeaderData(1, Qt::Horizontal, tr("单位名称"));
          model->setHeaderData(2, Qt::Horizontal, tr("部门名称"))
          ui->tableView->setModel(model);
        }
    
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QSqlTableModelQt中的一个模型(Model)类,用于将数据库中的数据呈现为表格模式。它可以与QTableView一起使用,以便在界面上显示和编辑数据库中的数据。 要使用QSqlTableModel,首先需要创建一个数据库连接,然后使用该连接来实例化QSqlTableModel。在实例化模型后,可以在代码中设置表名,设置需要显示的列以及过滤器等。 以下是一个简单的示例代码: ```c++ // 创建数据库连接 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("testdb"); db.setUserName("root"); db.setPassword("password"); db.open(); // 创建模型并设置表名 QSqlTableModel *model = new QSqlTableModel(this, db); model->setTable("mytable"); // 设置需要显示的列 model->setHeaderData(0, Qt::Horizontal, tr("ID")); model->setHeaderData(1, Qt::Horizontal, tr("Name")); model->setHeaderData(2, Qt::Horizontal, tr("Age")); // 设置过滤器 model->setFilter("Age > 18"); // 提交模型更改 model->submitAll(); // 在QTableView中显示模型数据 QTableView *view = new QTableView; view->setModel(model); view->show(); ``` 在这个例子中,我们首先创建了一个MySQL数据库连接,然后创建了一个QSqlTableModel对象,设置了需要显示的列和过滤器,并将该模型绑定到一个QTableView对象上。最后,我们在QTableView中显示了模型数据。 需要注意的是,QSqlTableModel是一个只读模型(read-only model),即不能对数据库进行插入、更新或删除操作。如果需要执行这些操作,可以使用QSqlRelationalTableModel或QSqlQueryModel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值