標頭檔案:
#include
#include
#include
工程中需要加入
qt +=sql
資料庫中的中文顯示為亂碼的解決方法:
在main函式中加入
#include qtextcodec::setcodecfortr(qtextcodec::codecforname("utf-8"));
qtextcodec::setcodecforcstrings(qtextcodec::codecforname("utf-8"));
qtextcodec::setcodecforlocale(qtextcodec::codecforname("utf-8"));
資料庫常用語句:
1.建立乙個資料庫
bool ***::connectiontodb()
qsqldatabase db = qsqldatabase::adddatabase("qsqlite");
db.setdatabasename("database.db");
if(!db.open()) {
return false;
else{
return true;
2.當資料庫開啟後,就可以向裡面新增表了
qsqlquery query;
query.exec(qobject::tr("create table telephone ("
"contactid int primary key,"
"name vchar,telephones interger, address vchar)"));
3.當有了表以後,就可以向裡面新增資料了
靜態插入
query.exec(qobject::tr("insert into telephone values (0,'吳',15229262462,'西大街')"));
query.exec(qobject::tr("insert into telephone values (1,'秦',15109280171,'東大街')"));
query.exec(qobject::tr("insert into telephone values (2,'笑',13775623567,'北大街')"));
動態插入
addperson(const int contactid,const qstring name,const qstring telephone ,const qstring addr)
qsqlquery query;
qstring temp1 = qobject::tr("insert into telephone(contactid,name,telephones,address) values('%1','%2','%3','%4')").arg(contactid)
.arg(name)
.arg(telephone )
.arg(addr);
bool isok;
isok = query.exec(temp2);
4.查詢
qsqlquery query;
bool flag=true;
query.exec(qobject::tr("select * from telephone where name='%1'").arg("吳"));
while(query.next())
flag=false;
int telid_db=query.value(0).toint();
qstring name_db=query.value(1).tostring();
qstring telnum_db=query.value(2).tostring();
qstring addr_db=query.value(3).tostring();
如果查詢失敗,就不會進入到while迴圈裡面去,既flag依然為true;
5.刪除
qsqlquery query;
query.exec(qstring("delete from telephone where contactid = '%1'").arg(1);
6.刪除表裡的全部資料
qsqlquery query;
query.exec("delete from telephone");
7.更新表裡的內容
qsqlquery query;
qstring temp2= qobject::tr("update telephone set telephones='%1', address='%2' where contactid='%3'").arg("1234556").arg("南大街").arg(1);boolisok;
isok= query.exec(temp2);
Qt4連線mysql成功
之前一直在做嵌入式方面的開發,用的都是sqlite資料庫,由於專案要求,這次改為mysql資料庫,不過qt是不自帶mysql資料庫驅動的,需要自己手動編譯。我上網查詢編譯方法,可是別人的qt要麼是linux環境下的,要麼版本不一樣。不過還是在網上找到了乙個別人已經編譯好了的驅動,現跟大家分享下。qt...
使用Qt5 6連線MySql
最近在做畢業設計,有不少同學選擇使用qt和mysql做資料庫程式。然而,這兩種開發工具並不是非常完美的一結合就能使用的。通常qt會自帶mysql的驅動,但是,一般能直接使用的並不多。大多數部落格 都給出了mysql驅動的編譯過程。在這裡給出現成的 已經編譯好了的驅動。在可以win10 qt5.6和m...
QT5 3連線mysql資料庫
一 環境 mysql 5.7 qt 5.3 二 步驟 1.檢視qt包含的資料庫驅動,新建空的qt專案databasedriver,在databasedriver.pro中新增 qt sqlsources main.cppqt widgets 新增main.cpp檔案。這裡使用qsqldatabase...