申明:作者本人也是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...