要求:項目要求數據庫數據以表格形式顯示出來;而且數據涉及兩個表
筆記:①做過幾個測試發現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); }