QT读SqlServer的简单介绍

怎样在Qt下连接读写sqlite数据库

这里以学生信息的录入与读取来作为演示,主要目的是演示数据库的操作,至于数据的显示等不在演示范围内,请您自行研究。

站在用户的角度思考问题,与客户深入沟通,找到桦甸网站设计与桦甸网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖桦甸地区。

首先,在Qt中建立一个图形界面的程序项目。

然后,我们在命令行下用sqlite命令创建了数据库 C:\StudentInfo\sutdentdata.db,并且建立了一个数据库表student,该表有四个字段ID、Name、Sex、Age,未向表中添加任何数据。

关于sqlite的简单使用,可以参考我们的另一篇经验。

2SQLite的简单使用方法

在读写SQLite数据库中,我们最主要用到的是QSqlDatabase类及QSqlQuery类,前者负责创建数据库连接并打开数据库,后者负责执行查询操作。实际上前者也可以进行查询操作并将结果返回给QSqlQuery对象,但是Qt并不建议这么做。

在干活前,依然是先看看Assitant,这是培养独立解决问题的一个好习惯。

好,下面给 录入 按钮的点击事件编写代码。关于如何给按钮的某一事件进行编码,可以参考我们另一篇经验。

首先在.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()"数据写入成功";

}

上面我们先调用了QSqlDatabase的静态函数addDatabase创建了一个名为wconntosqlite的连接。然后给其传递数据库名称。

如果数据库打开成功,就创建一个关联的QSqlQuery对象,最后由QSqlQuery来执行插入数据工作。

特别注意:QSqlQuery对象的创建必须在mydb open成功以后才行,否则会出错。

我们来看看效果如何。

4c++怎么做界面

我们接着来写查询按钮的代码,输入以下代码:

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()"数据读取成功";

query.first();

QString result="学号:"+query.value(0).toString()+" "

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

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

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

ui-lbl_query-setText(result);

}

与写入数据基本差不多,这里需要特别注意的是query.first();。看看Assistant怎么说的就知道了。原来,query对象在执行完查询语句后,query的位置被置于一个不可用的位置,如果想从query中获取数据,需要设置query到一个可用的记录中才行。方法有好几种,这里我们用了first()成员函数。

好,来看看运行结果。

可以看到软件读取的数据与控制台窗口的数据是一致的。

我们来总结下Qt操作SQLite数据库的五步走法决:

第一步,建立一个连接:QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");

第二步,关联数据库文件:db.setDatabaseName("这里你的数据库文件路径")

第三步,打开数据库:db.open()

第四步,如果数据库打开成功,就建立一个相关联的QSqlQuery对象:QSqlQuery query(db)

第五步,执行SQL语句:query.exec("你的SQL语句字符串")

如何用qt对sqlserver数据库

qt可以使用odbc驱动去连接sqlserver,先配置好odbc数据源,然后在qt里面调用数据源即可连接;

qt怎么连接sqlserver

前提:

SQL Server里已经建立了相应的数据库,有对应的表和数据。

步骤:

1. Qt里新建一个空工程,添加main.cpp文件。

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

3. 该敲代码了,代码如下:

[cpp] view plain copy

#include QtGui

#include QString

#include QTextCodec

#include QSqlDatabase

#include QtSql

/*连接数据库*/

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);

/*设置编码格式*/

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. 看看运行结果吧。

参考网址:

文章题目:QT读SqlServer的简单介绍
文章转载:https://www.cdcxhl.com/article4/dsejiie.html

成都网站建设公司_创新互联,为您提供电子商务移动网站建设商城网站软件开发自适应网站网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营