QT数据库实例 QT Sqlite操作
创始人
2024-08-02 15:11:27
0

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  
  2.  
  3. #include  
  4. #include  
  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()<
  28.   }     
  29.  query.exec(QObject::tr("drop student"));     
  30.   return a.exec();  

QT数据库实例 QT Sqlite操作

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...