要求:项目要求数据库数据以表格形式显示出来;而且数据涉及两个表
笔记:①做过几个测试发现QSqlTableModel使用数据库并连接QTableView显示速度最快
②使用QSqlTableModel发现不能声明两个表格;只有最后一个setTable()生效
方法:①创建视图或者临时表方式来配合QSqlTableModel(我是用的临时表)
视图可以被看成是虚拟表或存储查询。
临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。
②QSqlTableModel加载视图
//判断并删除临时表 if( !SqlOperation::SqlOperation_Oper("DROP TABLE IF EXISTS VibralistTemp;"))return; if( SqlOperation::SqlOperation_Oper(str_vibra) )//创建临时表 //str_vibra就是内联两个表的sql语句 //加载数据库数据 { qDebug()<<"创建临时表"; QSqlDatabase db = SqlConnectionPool::openConnection(); modelList_Vibra = new QSqlTableModel(this,db); modelList_Vibra->setTable("VibralistTemp"); //指定模型要关联的表(employee) modelList_Vibra->setEditStrategy(QSqlTableModel::OnManualSubmit);//手动提交 modelList_Vibra->select(); //查询表格数据 ui->tableView_2->setModel(modelList_Vibra); ui->tableView_2->horizontalHeader()->setResizeMode(QHeaderView::Stretch);//表格平均显示 ui->tableView_2->show(); SqlConnectionPool::closeConnection(db); }