qt mysql 实例_QT数据库实例 QT Sqlite操作

本文介绍了如何在QT中进行SQLite数据库操作,包括创建数据库、表及插入数据。在DOS环境下操作时遇到中文显示问题,解决办法是通过设置QT的编码并使用QObject::tr()。示例代码展示了创建表、插入数据和查询的步骤,同时分享了处理中文乱码的经验。
摘要由CSDN通过智能技术生成

QT数据库实例 QT Sqlite操作是本文介绍的内容,不多说,我们先 来看看内容,首先到SQLite官方网站下载:

http://www.sqlite.org/download.html

89fe3214f199d08d75b7d07e6afb60fd.png

得到sqlite3.exe。即可.就可以操作数据库,不用安装,不会修改系统信息。

4dbecdd7e3f026a9582b78929ff9cc7c.png

我们在DOS下运行sqlite3.exe的目录运行sqlite3.exe test就可以创建一个名为test的数据库。

7c4c1de66b07e4e5f0f3d442f23e6c9e.png

下面我们就可以创建数据库的表了如:

create table student(id varchar(10),name varchar(20),age smallint);

注意sqlite命令是基于sql的,必须在命令后面加上“;”,否则sqlite会认为一条语句还没有输入完成,总会提示用户输入。

insert into student values('1001' , 'lovesizhao' ,26);  //增加数据库内容

select * from student;//查看student数据库表的所有内容。这个时候会在sqlite3.exe目录得到一个名为test的文件,就是刚刚生成的数据库文件

当然这是在DOS操作,我将DOS下操作得到的数据库文件test放到Qt工程目录,在QT控制台程序中读取操作,但是却不能显示中文,不知道为什么。后来改成直接都在QT程序中增加数据库内容,也出现中文乱码,在网上找到答案:

将QT设置编码的地方改为:QTextCodec::setCodecForTr(QTextCodec::codecForLocale()));设置为本地编码,插入数据时对查询语句进行QObject::tr()

(首先应该在.pro文件中增加一句:QT += sql)

如下源码:

#include

#include

#include

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

QCoreApplication a(argc, argv);

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

QSqlDatabasedbconn=QSqlDatabase::addDatabase("QSQLITE");    //添加数据库驱动

dbconn.setDatabaseName("mytest.db");  //在工程目录新建一个mytest.db的文件

if(!dbconn.open())    {

qDebug()<

}

QSqlQuery query;//以下执行相关QSL语句

query.exec("create table student(id varchar,name varchar)");    //新建student表,id设置为主键,还有一个name项

query.exec(QObject::tr("insert into student values(1,'李刚')"));

query.exec(QObject::tr("insert into student values(2,'苹果')"));

query.exec(QObject::tr("insert into student values(3,'葡萄')"));

query.exec(QObject::tr("insert into student values(3,'李子')"));

query.exec(QObject::tr("insert into student values(4,’橘子')"));

query.exec(QObject::tr("insert into student values(5,'核桃')"));

query.exec(QObject::tr("insert into student values(6,'芒果')"));

//query.exec(QObject::tr("select id,name from student where id>=1"));

query.exec("select id,name from student where id>=1");

while(query.next())//query.next()指向查找到的第一条记录,然后每次后移一条记录    {

intele0=query.value(0).toInt();//query.value(0)是id的值,将其转换为int型

QStringele1=query.value(1).toString();

qDebug()<

}

query.exec(QObject::tr("drop student"));

return a.exec();

}

36bf1d188bf39c8582eb1566b7dd3e17.png

小结:关于QT数据库实例 QT Sqlite操作的内容介绍完了,希望本文对你有所帮助!

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值