Qt中操做數據庫例子-插入數據

通常流程:c++

  • 建立數據庫
  • 鏈接數據庫
  • 增刪查改
  • 關閉數據庫

環境:win7,vs2013,Qt5.6.0(32 bit),qt add in 1.2.5數據庫

建立控制檯工程,記得勾選SQL模塊,若是忘記勾選:VS」Qt」菜單-「Qt Project Settings」-「Qt Modules」-勾選SQL。編程

鏈接數據庫的函數:設計模式

bool createConnection(QString driver, QString dbName)
{
    //addDatabase()的第一個參數
    //指定了Qt必須使用哪個數據庫驅動程序來訪問這個數據庫
    QSqlDatabase db = QSqlDatabase::addDatabase(driver);

    //接下來,設置數據庫的主機名、數據庫名、用戶名和密碼
    //QSQLITE只須要設置名字就好了
    db.setDatabaseName(dbName);

    //打開這個鏈接,失敗將顯示出錯信息
    if (!db.open())
    {
        //QtSql 模塊中的類大多具備lastError()函數,用於檢查最新出現的錯誤
        qDebug() << db.lastError();
        return false;
    }
    return true;
}

若是習慣於使用 SQL 語句,咱們能夠選擇QSqlQuery類;markdown

若是隻須要使用高層次的數據庫接口(不關心 SQL 語法),咱們能夠選擇QSqlTableModelQSqlRelationalTableModel函數

Qt 學習之路 2學習

主函數:spa

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //數據庫驅動程序名
    QString driver = "QSQLITE";

    //數據庫名,絕對相對路徑均可
    QString dbName = "testli.db";
    //QString dbName = "D:\\QT\\project\\55_DataBase\\testli1.db";

    //鏈接數據庫,鏈接失敗則返回
    if (!createConnection(driver, dbName))
    {
        return 1;
    }

    //建立QSqlTableModel實例
    QSqlTableModel model;

    //設置所須要操做的表格
    model.setTable("measureRecords");

    //獲取系統時間
    QString time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");

    //獲取一個空的record,可是與數據庫表有同樣的字段空間?否則插入會失敗
    //幫助文檔:It returns an empty record, having only the field names.
    QSqlRecord record = model.record();

    //設置各字段鍵值
    record.setValue("measureTime", time);
    record.setValue("measureNumber", 12);
    record.setValue("length", 32);
    record.setValue("width", 32);
    record.setValue("height", 32);
    record.setValue("volume", 45);
    record.setValue("weight", 332);

    //插入,-1表明插入到行尾
    model.insertRecord(-1, record);

    return a.exec();
}

代碼在這裏.net

參考:設計

C++ Qt設計模式(豆瓣)第18章爲數據庫的介紹

C++GUI Qt4編程(豆瓣)第13章爲數據庫的介紹

Qt 學習之路 2

相關文章
相關標籤/搜索