通常流程: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 語法),咱們能夠選擇
QSqlTableModel
和QSqlRelationalTableModel
。函數—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章爲數據庫的介紹