QT数据库实例 QT Sqlite操作是本文介绍的内容,不多说,我们先 来看看内容,首先到SQLite官方网站下载:
http://www.sqlite.org/download.html
得到sqlite3.exe。即可.就可以操作数据库,不用安装,不会修改系统信息。
我们在DOS下运行sqlite3.exe的目录运行sqlite3.exe test就可以创建一个名为test的数据库。
下面我们就可以创建数据库的表了如:
create table student(id varchar(10),name varchar(20),age smallint);
- 1.
注意sqlite命令是基于sql的,必须在命令后面加上“;”,否则sqlite会认为一条语句还没有输入完成,总会提示用户输入。
insert into student values('1001' , 'lovesizhao' ,26); //增加数据库内容
- 1.
select * from student;//查看student数据库表的所有内容。这个时候会在sqlite3.exe目录得到一个名为test的文件,就是刚刚生成的数据库文件
当然这是在DOS操作,我将DOS下操作得到的数据库文件test放到Qt工程目录,在QT控制台程序中读取操作,但是却不能显示中文,不知道为什么。后来改成直接都在QT程序中增加数据库内容,也出现中文乱码,在网上找到答案:
将QT设置编码的地方改为:QTextCodec::setCodecForTr(QTextCodec::codecForLocale()));设置为本地编码,插入数据时对查询语句进行QObject::tr()
(首先应该在.pro文件中增加一句:QT += sql)
如下源码:
#include <QtCore/QCoreApplication>
#include <QtSql>
#include <QTextCodec>
int main(int argc, char *argv[]){
QCoreApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QSqlDatabase dbconn=QSqlDatabase::addDatabase("QSQLITE"); //添加数据库驱动
dbconn.setDatabaseName("mytest.db"); //在工程目录新建一个mytest.db的文件
if(!dbconn.open()) {
qDebug()<<"fdsfds";
}
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()指向查找到的第一条记录,然后每次后移一条记录 {
int ele0=query.value(0).toInt();//query.value(0)是id的值,将其转换为int型
QString ele1=query.value(1).toString();
qDebug()<<ele0<<ele1;//输出两个值
}
query.exec(QObject::tr("drop student"));
return a.exec();
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
小结:关于QT数据库实例 QT Sqlite操作的内容介绍完了,希望本文对你有所帮助!