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操作的内容介绍完了,希望本文对你有所帮助!

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...