QT数据库实例 QT Sqlite操作

移动开发
本文介绍的是QT数据库实例 QT Sqlite操作,这里主要是针对sqlite的,我们先来看内容。

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

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

QT数据库实例 QT Sqlite操作

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

QT数据库实例 QT Sqlite操作

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

QT数据库实例 QT Sqlite操作

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

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

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

  1. 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)

如下源码:

  1. #include <QtCore/QCoreApplication> 
  2.  
  3. #include <QtSql> 
  4. #include <QTextCodec> 
  5. int main(int argc, char *argv[]){      
  6. QCoreApplication a(argc, argv);     
  7.  QTextCodec::setCodecForTr(QTextCodec::codecForLocale());     
  8.   QSqlDatabase dbconn=QSqlDatabase::addDatabase("QSQLITE");    //添加数据库驱动      
  9.   dbconn.setDatabaseName("mytest.db");  //在工程目录新建一个mytest.db的文件      
  10.   if(!dbconn.open())    {          
  11.   qDebug()<<"fdsfds";      
  12.   }      
  13.  QSqlQuery query;//以下执行相关QSL语句      
  14.  query.exec("create table student(id varchar,name varchar)");    //新建student表,id设置为主键,还有一个name项     
  15.   query.exec(QObject::tr("insert into student values(1,'李刚')"));      
  16.   query.exec(QObject::tr("insert into student values(2,'苹果')"));     
  17.    query.exec(QObject::tr("insert into student values(3,'葡萄')"));      
  18.    query.exec(QObject::tr("insert into student values(3,'李子')"));      
  19.    query.exec(QObject::tr("insert into student values(4,’橘子')"));      
  20.    query.exec(QObject::tr("insert into student values(5,'核桃')"));      
  21.    query.exec(QObject::tr("insert into student values(6,'芒果')"));  
  22.       //query.exec(QObject::tr("select id,name from student where id>=1"));      
  23.    query.exec("select id,name from student where id>=1");     
  24.     while(query.next())//query.next()指向查找到的第一条记录,然后每次后移一条记录    {   
  25.            int ele0=query.value(0).toInt();//query.value(0)是id的值,将其转换为int型          
  26.            QString ele1=query.value(1).toString();          
  27.            qDebug()<<ele0<<ele1;//输出两个值  
  28.   }     
  29.  query.exec(QObject::tr("drop student"));     
  30.   return a.exec();  

QT数据库实例 QT Sqlite操作

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

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-05 10:16:16

Qt 数据库 SQLite

2011-06-27 13:32:21

Qt 数据库 QSqlQueryM

2011-06-27 13:49:43

Qt 数据库 QSqlQueryM

2011-07-05 18:04:45

QT Mysql

2011-07-01 14:06:57

Qt sqlite

2011-08-30 14:15:34

QTSQLite数据库

2011-06-21 15:11:04

QT 数据库

2011-07-01 10:55:25

Qt 登陆窗口 界面

2011-07-05 16:08:10

2011-07-04 17:18:23

Qt SQLite 数据库

2011-08-30 14:25:06

QT数据库

2011-07-04 18:02:29

QT Sqlite 数据库

2011-07-26 18:11:56

iPhone Sqlite 数据库

2011-07-01 13:42:24

QT 数据库

2011-07-05 18:11:13

Qt 数据库

2011-06-27 12:56:28

2011-07-05 17:54:43

QT Sqlite ARM

2011-07-07 16:42:38

iPhone Sqlite3 数据库

2011-07-05 15:16:00

QT 进度条

2011-06-23 18:37:02

Qt 数据库
点赞
收藏

51CTO技术栈公众号