QT5 Access資料庫連線方法

2021-06-23 00:59:42 字數 1789 閱讀 7973

申明:作者本人也是qt新手,大一學生學軟體一年,如有錯誤望包涵

1.首先需要在.pro中加入 qt += sql

2. .cpp中(最好都新增)

#include

#include

#include

3.資料庫連線**(在標頭檔案中申明connectdb())

void widget::connectdb()

; fil=;dbq=%1;").arg(sdbnm);//連線字串

db.setdatabasename(dsn);//設定連線字串

db.setusername("");//設定登陸資料庫的使用者名稱

db.setpassword("");//設定密碼

bool ok = db.open();

if (!ok)

}4. 可能遇見無法找到sql***一類的報錯,我的解決辦法就是新建乙個工程,重新新增所有檔案,然後複製以前的**貼上進新的工程。如果是dialog,就新建乙個設計師介面,它會自動新增標頭檔案,source檔案和ui介面,只需複製原來的.ui檔案覆蓋到新工程目錄下。

5. 連線資料庫(就是呼叫connectdb()函式)

widget::widget(qwidget *parent) :

qwidget(parent),

ui(new ui::widget)

*注意*connectdb()已經將資料庫開啟而且沒有關閉資料庫,所以在其他函式裡不要再使用connectdb();正常情況下直接運算元據庫就行了。

6. 運算元據庫,使用sql語句,提供幾種操作方法:

(一)qsqlquery query;

query.prepare("select * from table");

query.exec();

(二) qsqlquery query;

query.exec("select * from table");

(三)注意這種方法可以靈活改變sql語句

qstring psd=***xx;

qstring name=***xx;

qsqlquery query;

query.prepare("update userinf set userpsd=? where username=?");//修改資料

query.bindvalue(0,psd);//替換第乙個問號內容

query.bindvalue(1,name);//替換第二個問號內容

query.exec();

(四)相似的方法

qstring time=***xx;

qstring path=***xx;

qsqlquery query;

query.prepare("insert into table(uploadtime, picture) "

"values (?, ?)");//插入語句

query.addbindvalue(time);

query.addbindvalue(path);

query.exec();

query.clear();//這個是清除執行得到的內容,如果資料不使用了可以清除掉

7. 使用資料(提供一種使用texe edit的)

qsqlquery query;

query.prepare("select * from talentteammain");

query.exec();

while (query.next())/遍歷查詢的資料

query.clear();//text edit控制項中顯示你得到的資料

Qt連線本地Access資料庫

最近做專案需要使用qt做乙個 想法是直接繫結本地資料庫字段然後顯示就行了,由於剛學習qt不久,過程十分曲折,先部落格一篇僅作記錄,新手上路,歡迎批評指正。在qt中有自帶的qsql類是用來運算元據庫的,本著物件導向的原則,我決定將資料庫連線封裝成乙個類。先引入標頭檔案 include 執行緒保護序列化...

連線ACCESS資料庫

1 匯入命名空間空間 system.data.oledb 2 建立指向資料庫的連線 建立連線要用到system.data.oledb命名空間中的類 oledbconnection。通過以下語句可以完成對本地資料庫的連線工作 string strconnect provider microsoft.j...

access資料庫連線

string strconnection provider microsoft.jet.oledb.4.0 strconnection data source e accesstest data.mdb 裡用的是?路徑 oledbconnection objconnection new oledbc...