欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

QT讀SqlServer的簡(jiǎn)單介紹

怎樣在Qt下連接讀寫sqlite數(shù)據(jù)庫(kù)

這里以學(xué)生信息的錄入與讀取來(lái)作為演示,主要目的是演示數(shù)據(jù)庫(kù)的操作,至于數(shù)據(jù)的顯示等不在演示范圍內(nèi),請(qǐng)您自行研究。

站在用戶的角度思考問題,與客戶深入溝通,找到樺甸網(wǎng)站設(shè)計(jì)與樺甸網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋樺甸地區(qū)。

首先,在Qt中建立一個(gè)圖形界面的程序項(xiàng)目。

然后,我們?cè)诿钚邢掠胹qlite命令創(chuàng)建了數(shù)據(jù)庫(kù) C:\StudentInfo\sutdentdata.db,并且建立了一個(gè)數(shù)據(jù)庫(kù)表student,該表有四個(gè)字段ID、Name、Sex、Age,未向表中添加任何數(shù)據(jù)。

關(guān)于sqlite的簡(jiǎn)單使用,可以參考我們的另一篇經(jīng)驗(yàn)。

2SQLite的簡(jiǎn)單使用方法

在讀寫SQLite數(shù)據(jù)庫(kù)中,我們最主要用到的是QSqlDatabase類及QSqlQuery類,前者負(fù)責(zé)創(chuàng)建數(shù)據(jù)庫(kù)連接并打開數(shù)據(jù)庫(kù),后者負(fù)責(zé)執(zhí)行查詢操作。實(shí)際上前者也可以進(jìn)行查詢操作并將結(jié)果返回給QSqlQuery對(duì)象,但是Qt并不建議這么做。

在干活前,依然是先看看Assitant,這是培養(yǎng)獨(dú)立解決問題的一個(gè)好習(xí)慣。

好,下面給 錄入 按鈕的點(diǎn)擊事件編寫代碼。關(guān)于如何給按鈕的某一事件進(jìn)行編碼,可以參考我們另一篇經(jīng)驗(yàn)。

首先在.pro文件中加上sql,然后別忘了#include QSqlDatabase以及#include QSqlQuery。

好了,下面在錄入按鈕的槽中加入如下代碼:

QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","wconntosqlite");

mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");

if(mydb.open())

{

QSqlQuery query(mydb);

QString sqlstr="insert into student (ID,Name,Sex,Age) values ('"

+ui-le_id-text()+"','"

+ui-le_name-text()+"','"

+ui-le_sex-text()+"',"

+ui-le_age-text()+")";

bool isok=query.exec(sqlstr);

if(isok)

qDebug()"數(shù)據(jù)寫入成功";

}

上面我們先調(diào)用了QSqlDatabase的靜態(tài)函數(shù)addDatabase創(chuàng)建了一個(gè)名為wconntosqlite的連接。然后給其傳遞數(shù)據(jù)庫(kù)名稱。

如果數(shù)據(jù)庫(kù)打開成功,就創(chuàng)建一個(gè)關(guān)聯(lián)的QSqlQuery對(duì)象,最后由QSqlQuery來(lái)執(zhí)行插入數(shù)據(jù)工作。

特別注意:QSqlQuery對(duì)象的創(chuàng)建必須在mydb open成功以后才行,否則會(huì)出錯(cuò)。

我們來(lái)看看效果如何。

4c++怎么做界面

我們接著來(lái)寫查詢按鈕的代碼,輸入以下代碼:

QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntosqlite");

mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");

if(mydb.open())

{

QSqlQuery query(mydb);

QString sqlstr="select * from student";

bool isok=query.exec(sqlstr);

if(isok)

qDebug()"數(shù)據(jù)讀取成功";

query.first();

QString result="學(xué)號(hào):"+query.value(0).toString()+" "

+"姓名:"+query.value(1).toString()+" "

+"性別:"+query.value(2).toString()+" "

+"年齡:"+query.value(3).toString();

ui-lbl_query-setText(result);

}

與寫入數(shù)據(jù)基本差不多,這里需要特別注意的是query.first();。看看Assistant怎么說的就知道了。原來(lái),query對(duì)象在執(zhí)行完查詢語(yǔ)句后,query的位置被置于一個(gè)不可用的位置,如果想從query中獲取數(shù)據(jù),需要設(shè)置query到一個(gè)可用的記錄中才行。方法有好幾種,這里我們用了first()成員函數(shù)。

好,來(lái)看看運(yùn)行結(jié)果。

可以看到軟件讀取的數(shù)據(jù)與控制臺(tái)窗口的數(shù)據(jù)是一致的。

我們來(lái)總結(jié)下Qt操作SQLite數(shù)據(jù)庫(kù)的五步走法決:

第一步,建立一個(gè)連接:QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");

第二步,關(guān)聯(lián)數(shù)據(jù)庫(kù)文件:db.setDatabaseName("這里你的數(shù)據(jù)庫(kù)文件路徑")

第三步,打開數(shù)據(jù)庫(kù):db.open()

第四步,如果數(shù)據(jù)庫(kù)打開成功,就建立一個(gè)相關(guān)聯(lián)的QSqlQuery對(duì)象:QSqlQuery query(db)

第五步,執(zhí)行SQL語(yǔ)句:query.exec("你的SQL語(yǔ)句字符串")

如何用qt對(duì)sqlserver數(shù)據(jù)庫(kù)

qt可以使用odbc驅(qū)動(dòng)去連接sqlserver,先配置好odbc數(shù)據(jù)源,然后在qt里面調(diào)用數(shù)據(jù)源即可連接;

qt怎么連接sqlserver

前提:

SQL Server里已經(jīng)建立了相應(yīng)的數(shù)據(jù)庫(kù),有對(duì)應(yīng)的表和數(shù)據(jù)。

步驟:

1. Qt里新建一個(gè)空工程,添加main.cpp文件。

2. 在工程文件(.pro文件)添加一行:QT += sql。

3. 該敲代碼了,代碼如下:

[cpp] view plain copy

#include QtGui

#include QString

#include QTextCodec

#include QSqlDatabase

#include QtSql

/*連接數(shù)據(jù)庫(kù)*/

void OpenDatabase()

{

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

db.setDatabaseName(QString("DRIVER={SQL SERVER};"

"SERVER=%1;"

"DATABASE=%2;"

"UID=%3;"

"PWD=%4;").arg("QIAN-PC")

.arg("StuManager")

.arg("sa")

.arg("123456"));

if (!db.open())

{

QMessageBox::warning(0, qApp-tr("Cannot open database"),

db.lastError().databaseText(), QMessageBox::Cancel);

}

else

{

qDebug()"Connect to Database Success!";

}

}

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

/*設(shè)置編碼格式*/

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

OpenDatabase();

QDialog *mainDialog = new QDialog;

QTableView *tableView = new QTableView;

QHBoxLayout *layout = new QHBoxLayout;

layout-addWidget(tableView);

mainDialog-setLayout(layout);

QSqlQueryModel *model = new QSqlQueryModel;

model-setQuery(QObject::tr("select * from 教師"));

tableView-setModel(model);

mainDialog-adjustSize();

mainDialog-show();

return a.exec();

}

4. 看看運(yùn)行結(jié)果吧。

參考網(wǎng)址:

文章題目:QT讀SqlServer的簡(jiǎn)單介紹
文章轉(zhuǎn)載:http://chinadenli.net/article4/dsejiie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)移動(dòng)網(wǎng)站建設(shè)商城網(wǎng)站軟件開發(fā)自適應(yīng)網(wǎng)站網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)