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