QT學習之路————使用QT自帶的QSqlDatabase類簡單操作sqlite資料庫
阿新 • • 發佈:2019-02-18
#include "dialog.h" #include "ui_dialog.h" #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); this->setStyleSheet("background-color:rgb(240, 240, 240);"); size = 0; //初始化變數 model = new QStandardItemModel; model->setColumnCount(3); /**************************設定表頭標籤 ********************************/ model->setHeaderData(0,Qt::Horizontal,"ID"); model->setHeaderData(1,Qt::Horizontal,"User"); model->setHeaderData(2,Qt::Horizontal,"PassWd"); //ui->tableView->setModel(model); ui->tableView->verticalHeader()->hide(); ui->tableView->setColumnWidth(0,100); ui->tableView->setColumnWidth(1,100); ui->tableView->setColumnWidth(2,100); ui->tableView->horizontalHeader()->hide(); ui->tableView->setFrameStyle(false); ui->tableView->setStyleSheet("background-color:rgb(240, 240, 240);"); } Dialog::~Dialog() { delete ui; } void Dialog::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("./student"); db.open(); int j=0,i=0; QSqlQuery query; query.exec("SELECT * FROM user"); query.last(); //否則定位到結果最後,qt 文件說,這個方法非常慢 // numRows = query.at() + 1; // query.seek(numRows-5); do { i++; QStandardItem *itemID = new QStandardItem(QString::number(j)); model->setItem(j,0,itemID); QStandardItem *itemUser = new QStandardItem(query.value(0).toString()); model->setItem(j,1,itemUser); QStandardItem *itemPassWd = new QStandardItem(query.value(1).toString()); model->setItem(j,2,itemPassWd); j++; } while(query.previous()&&i<2); ui->tableView->setModel(model); j=0; i=0; db.close(); }