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操作

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

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操作

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

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

2011-07-05 10:16:16

Qt 数据库 SQLite

2011-06-27 13:49:43

Qt 数据库 QSqlQueryM

2011-06-27 13:32:21

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-05 15:16:00

QT 进度条

2011-07-07 16:42:38

iPhone Sqlite3 数据库

2011-06-23 18:37:02

Qt 数据库
点赞
收藏

51CTO技术栈公众号