1. 程式人生 > >QT使用SQLite

QT使用SQLite

在QT的widget中用tableview顯示sqlite資料庫表中的內容。

用QTcreator建立一個基於Widget類的視窗,再拖一個tableview到widget中,儲存.

 1.在widget.h中增添標頭檔案:QtSql/qsql.h、QtSql/QsqlDatabase、QtSql/QsqlQuery、QtSql/QsqlQueryModel

    2.在.pro工程檔案中新增:QT+=sql

    3.在widget.cpp中widget的建構函式中新增如下程式碼:

    QsqDatabase db = QsqlDatabase::addDatabase("QSQLITE");

    db.setDatabaseName("test.db");

    if(!db.open())

    {

        //錯誤處理

    }

    static QSqlQueryModel *model = new QSqlQueryModel(ui->tableview);

    model->setQuery(QString("select * from table"));

    model->setHeaderData(0,Qt::Horizontal,QObject::tr("編號"));

    model->setHeaderData(1,Qt::Horizontal,QObject::tr("姓名"));

    model->setHeaderData(2,Qt::Horizontal,QObject::tr("年齡"));

    ui->tableview->setModel(model);

    db->close();

    這樣之後,table表裡的內容就會顯示到tableview中了。

幾點說明:

1.執行程式,提示連結錯誤,則需要將pro檔案中新增 += sql後,重新make一下工程

2.執行程式,tableview中是空白,那麼可能是因為資料庫位置沒有配好,先改成絕對路徑試試: C:\test.db

3.明明在介面編輯中拖了一個tableview控制元件進去,在編輯程式碼那裡死活找不到tableview,全部儲存好幾遍也不行

後來直接執行一遍程式,再編輯程式碼,自動完成提示裡終於出現tableview了!