更新數(shù)據(jù)庫操作實例
//更新數(shù)據(jù)操作
QString sqlUpdate = QString("update staff set name = '李四' where id= 3;");
if(!query.exec(sqlUpdate))
{
qDebug() << "update data error" << db.lastError();
}
(5)查詢數(shù)據(jù)
查詢操作語法:
SELECT column1, column2, column FROM table_name;
SELECT ---- 關(guān)鍵字
column1, column2 columnN --- 列的字段名
FROM ----- 關(guān)鍵字
table_name ----- 表名
從表中查詢出指定字段的對應(yīng)的值,如果想要拆線呢所有字段的值,可以采用:select * from 表名
SELECT * FROM table_name;
查詢操作實例:
//查詢操作
QString sqlSelect = QString("select * from staff;");
if(!query.exec(sqlSelect))
{
qDebug() << "insert data error" << db.lastError();
}
else
{
while(query.next())
{
qDebug() << query.value("name").toString();
qDebug() << query.value("age").toInt();
}
}
第五步:顯示數(shù)據(jù)庫信息到UI頁面
//顯示數(shù)據(jù)庫信息
QString sqlSelect = QString("select * from staff;");
if(!query.exec(sqlSelect))
{
qDebug() << "query data error" << db.lastError();
}
else
{
while(query.next())
{
qDebug() << query.value("name").toString();
qDebug() << query.value("age").toInt();
ui->nameLabel->setText(query.value("name").toString());
ui->ageLabel->setText(QString::number(query.value("name").toInt()));
}
}
查詢到最后一行數(shù)據(jù)顯示到UI上:
第六步:關(guān)閉數(shù)據(jù)庫
db.close();
3、Qt SQL模塊數(shù)據(jù)庫類接口
在Qt中為SQL數(shù)據(jù)庫提供驅(qū)動程序?qū)印QL API層和用戶界面層,其提供主要類的簡要功能說明見下表
Qt SQL模塊包含的主要類的功能
類名稱 | 功能說明 |
---|---|
QSqlDatabase | 用于與數(shù)據(jù)庫建立連接 |
QSqlDriver | 訪問特定sql數(shù)據(jù)庫的抽象基類 |
QSqlDriverCreator | 為某個具體的數(shù)據(jù)庫驅(qū)動提供SQL驅(qū)動的模板類 |
QSqlDriverCreatorBase | 所有SQL驅(qū)動器的基類 |
QSqlDriverPlugin | 用于定制QSqlDriver插件的抽象類 |
QSqlError | SQL數(shù)據(jù)錯誤細(xì)信息,可以用于訪問上一次出錯的信息 |
QSqlField | 操作數(shù)據(jù)表或試圖的字段的類 |
QSqlIndex | 執(zhí)行數(shù)據(jù)庫索引的類 |
QSqlQuery | 執(zhí)行各種SQL語句的類 |
QSqlQueryModel | SQL查詢結(jié)果數(shù)據(jù)的只讀數(shù)據(jù)模型,用于SELECT查詢結(jié)果數(shù)據(jù)記錄的只讀顯示 |
QSqlRecord | 封裝了數(shù)據(jù)記錄操作的類 |
QSqlRelation | 用于存儲SQL外鍵信息的類,用于QSqlRelationalTableModel數(shù)據(jù)源中設(shè)置代碼字段與關(guān)聯(lián)數(shù)據(jù)表的關(guān)系 |
QSqlRelationTableModel | 用于QSqlRelationalTableModel的一個代碼字段的顯示和編輯代理組件,一般是一個QComboBox組件,下拉列表中自動填充代碼表的代碼字段對應(yīng)的實際內(nèi)容 |
QSqlRelationTableModel | 用于一個數(shù)據(jù)表的可編輯數(shù)據(jù)模型,支持代碼字段的外鍵 |
QSqlResult | 訪問SQL數(shù)據(jù)庫的抽象接口 |
QSqlTableModel | 編輯一個單一數(shù)據(jù)表的數(shù)據(jù)模型類 |
QtSQL也是采用MVC設(shè)計思想來處理數(shù)據(jù),主要類有:
(1) QSqlDatabase用于建立與數(shù)據(jù)庫的連接,在建立連接時,加載數(shù)據(jù)庫驅(qū)動的時候,可以設(shè)置數(shù)據(jù)庫類型和數(shù)據(jù)庫名字。除此之外,還可以通過接口設(shè)置數(shù)據(jù)庫名字、主機(jī)名、用戶名和密碼,其主要接口說明見下表:
QSqlDatabase操作主要接口
函數(shù)名稱 | 功能說明 |
---|---|
QSqlDatabase addDatabase(constQString &type,const QString &connectionName=QLatin1String(defaultConnection)) | 根據(jù)數(shù)據(jù)庫類型,獲取數(shù)據(jù)庫對象并連接 |
void setDatabaseName(const QString &name) | 設(shè)置連接數(shù)據(jù)庫名字 |
void setHostName(const QString &host) | 設(shè)置連接主機(jī)名字 |
void sePassword(const QString &password) | 設(shè)置連接密碼 |
void setUserName(const QString &name) | 設(shè)置連接用戶名 |
bool open() | 打開連接的數(shù)據(jù)庫 |
(2) QSqlQuery執(zhí)行各種SQL語句的類,在打開成功連接的數(shù)據(jù)庫,則可以通過QSqlQuery的接口來訪問數(shù)據(jù)庫中內(nèi)容,其主要接口說明見下表
QSqlQuery操作主要接口
函數(shù)名稱 | 功能說明 |
---|---|
QSqlQuery(const QString &query = QString(),QSqlDatabase db=QSqlDatabase()) | 得到訪問數(shù)據(jù)庫QSqlQuery對象 |
bool exec(const QString &query) | 執(zhí)行SQL語句訪問數(shù)據(jù)庫 |
int at() const | 得到當(dāng)前記錄查詢位置,第一條記錄的為0 |
bool first() | 檢索結(jié)果中的第一條記錄 |
bool last() | 檢索結(jié)果中的最后一條記錄 |
bool next() | 檢索結(jié)果中的下一條記錄 |
QVariant value(const QString &name) const | 返回當(dāng)前記錄中名為name的字段的值 |
-
嵌入式
+關(guān)注
關(guān)注
5141文章
19537瀏覽量
315064 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3901瀏覽量
65779 -
MySQL
+關(guān)注
關(guān)注
1文章
849瀏覽量
27543
發(fā)布評論請先 登錄
數(shù)據(jù)庫系統(tǒng)是什么?數(shù)據(jù)庫系統(tǒng)概念之數(shù)據(jù)庫設(shè)計資料免費下載

如何進(jìn)行數(shù)據(jù)庫設(shè)計?數(shù)據(jù)庫設(shè)計介紹和需求分析及結(jié)構(gòu)設(shè)計資料概述

如何使用PowerDesigner進(jìn)行數(shù)據(jù)庫靜態(tài)結(jié)構(gòu)設(shè)計?詳細(xì)資料概述

數(shù)據(jù)庫靜態(tài)結(jié)構(gòu)如何設(shè)計?詳細(xì)資料任務(wù)和方法說明

數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計

數(shù)據(jù)庫設(shè)計的七大知識點總結(jié)詳細(xì)資料免費下載

數(shù)據(jù)庫學(xué)習(xí)入門資料之如何進(jìn)行數(shù)據(jù)庫設(shè)計

數(shù)據(jù)庫學(xué)習(xí)入門資料之數(shù)據(jù)庫的概念結(jié)構(gòu)詳細(xì)資料概述

數(shù)據(jù)庫概念結(jié)構(gòu)是如何設(shè)計的概念結(jié)構(gòu)設(shè)計資料概述

數(shù)據(jù)庫的設(shè)計概念總結(jié)

數(shù)據(jù)庫設(shè)計開發(fā)案例教程之數(shù)據(jù)庫設(shè)計的資料介紹

Qt學(xué)習(xí)筆記之數(shù)據(jù)庫結(jié)構(gòu)設(shè)計1

Qt學(xué)習(xí)筆記之數(shù)據(jù)庫結(jié)構(gòu)設(shè)計5

Qt學(xué)習(xí)筆記之數(shù)據(jù)庫結(jié)構(gòu)設(shè)計6

Qt學(xué)習(xí)筆記之數(shù)據(jù)庫結(jié)構(gòu)設(shè)計7

評論