Qt连接SQLite【转自http:mobile.51cto.comsymbian-27...

Qt连接SQLite【转自http:mobile.51cto.comsymbian-27...,第1张

概述QT数据库实例 QT Sqlite *** 作是本文介绍的内容,不多说,我们先 来看看内容,首先到SQLite官方网站下载: http://www.sqlite.org/download.html 得到sqlite3.exe。即可.就可以 *** 作数据库,不用安装,不会修改系统信息。 我们在DOS下运行sqlite3.exe的目录运行sqlite3.exe test就可以创建一个名为test的数据库。 下面我们

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

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

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

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

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

      createtablestudent(IDvarchar(10),namevarchar(20),agesmallint);   

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

      insertintostudentvalues('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)

如下源码:

      #include<QtCore/QCoreApplication>            #include<Qtsql>      #include<QTextCodec>      intmain(intargc,char*argv[]){       QCoreApplicationa(argc,argv);       QTextCodec::setCodecForTr(QTextCodec::codecForLocale());       QsqlDatabasedbconn=QsqlDatabase::addDatabase("QsqlITE");//添加数据库驱动       dbconn.setDatabasename("mytest.db");//在工程目录新建一个mytest.db的文件       if(!dbconn.open()){       qDeBUG()<<"fdsfds";       }       Qsqlqueryquery;//以下执行相关QSL语句       query.exec("createtablestudent(IDvarchar,namevarchar)");//新建student表,ID设置为主键,还有一个name项       query.exec(QObject::tr("insertintostudentvalues(1,'李刚')"));       query.exec(QObject::tr("insertintostudentvalues(2,'苹果')"));       query.exec(QObject::tr("insertintostudentvalues(3,'葡萄')"));       query.exec(QObject::tr("insertintostudentvalues(3,'李子')"));       query.exec(QObject::tr("insertintostudentvalues(4,’橘子')"));       query.exec(QObject::tr("insertintostudentvalues(5,'核桃')"));       query.exec(QObject::tr("insertintostudentvalues(6,'芒果')"));       //query.exec(QObject::tr("selectID,namefromstudentwhereID>=1"));       query.exec("selectID,namefromstudentwhereID>=1");       while(query.next())//query.next()指向查找到的第一条记录,然后每次后移一条记录{       intele0=query.value(0).toInt();//query.value(0)是ID的值,将其转换为int型       QStringele1=query.value(1).toString();       qDeBUG()<<ele0<<ele1;//输出两个值       }       query.exec(QObject::tr("dropstudent"));       returna.exec();       }   

总结

以上是内存溢出为你收集整理的Qt连接SQLite【转自http://mobile.51cto.com/symbian-27...全部内容,希望文章能够帮你解决Qt连接SQLite【转自http://mobile.51cto.com/symbian-27...所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1174777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存