Qt如何实现对SQLite的写入与更新 *** 作的,急!

Qt如何实现对SQLite的写入与更新 *** 作的,急!,第1张

点击一下查看按钮,会添加一条信息,在pc机上很容易实现了,但在Arm开饭板上,数据能打开但执行插入的 *** 作的时候总是报错,我把我能想到的可能都想到了,1,修改了一下数据库的权限,2,export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/QtEmbedded-470-arm/plugins/sqldrivers

,sqlite库的路径也加上了,但运行结果是一样的,错误提示不是打开数据库失败,就是动态库超出链接队列什么的(英语不太好),总之不行。后来我决定采取比较二的选择,在arm板linux系统上跑sqlite插件,后来还是以失败告终(但得到了好多启发,下片博文讲),无奈我想到的办法是整一个好的sqliteDemo

在板子上跑一下,执行sql语句的时候还是不行,报错信息是打开数据库失败,无奈做了下一步决定,重烧了一下文件系统,和内核,结果还是不行,在崩溃的边缘,向老大求教,捣鼓了一阵,结果把生成的可执行文件放到了根目录下成功了!可以对数据库进行各种 *** 作,我把我自己写的Qt

sqlite的小demo也放到了根目录下结果也成功运行了,很奇怪呀!网上还有人说友善的arm板子对数据库的支持不好。

QSqlQueryModel 这个就可以

eg:

QSqlQueryModel model = new QSqlQueryModel;

model->setQuery(“select from xxx”);

model->setHeaderData(0, Qt::Horizontal, tr(“id”));

model->setHeaderData(1, Qt::Horizontal, tr(“name”));

QTableView view = new QTableView;

view->setModel(model);

view->show();

不明白再问

这里以学生信息的录入与读取来作为演示,主要目的是演示数据库的 *** 作,至于数据的显示等不在演示范围内,请您自行研究。

首先,在Qt中建立一个图形界面的程序项目。

然后,我们在命令行下用sqlite命令创建了数据库 C:\StudentInfo\sutdentdatadb,并且建立了一个数据库表student,该表有四个字段ID、Name、Sex、Age,未向表中添加任何数据。

关于sqlite的简单使用,可以参考我们的另一篇经验。

1SQLite的简单使用方法

在读写SQLite数据库中,我们最主要用到的是QSqlDatabase类及QSqlQuery类,前者负责创建数据库连接并打开数据库,后者负责执行查询 *** 作。实际上前者也可以进行查询 *** 作并将结果返回给QSqlQuery对象,但是Qt并不建议这么做。

在干活前,依然是先看看Assitant,这是培养独立解决问题的一个好习惯。

好,下面给 录入 按钮的点击事件编写代码。关于如何给按钮的某一事件进行编码,可以参考我们另一篇经验。

首先在pro文件中加上sql,然后别忘了#include <QSqlDatabase>以及#include <QSqlQuery>。

好了,下面在录入按钮的槽中加入如下代码:

QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","wconntosqlite");

mydbsetDatabaseName("c:\\StudentInfo\\studentdatadb");

if(mydbopen())

{

QSqlQuery query(mydb);

QString sqlstr="insert into student (ID,Name,Sex,Age) values ('"

+ui->le_id->text()+"','"

+ui->le_name->text()+"','"

+ui->le_sex->text()+"',"

+ui->le_age->text()+")";

bool isok=queryexec(sqlstr);

if(isok)

qDebug()<<"数据写入成功";

}

上面我们先调用了QSqlDatabase的静态函数addDatabase创建了一个名为wconntosqlite的连接。然后给其传递数据库名称。

如果数据库打开成功,就创建一个关联的QSqlQuery对象,最后由QSqlQuery来执行插入数据工作。

特别注意:QSqlQuery对象的创建必须在mydb open成功以后才行,否则会出错。

我们来看看效果如何。

1c++怎么做界面

我们接着来写查询按钮的代码,输入以下代码:

QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntosqlite");

mydbsetDatabaseName("c:\\StudentInfo\\studentdatadb");

if(mydbopen())

{

QSqlQuery query(mydb);

QString sqlstr="select from student";

bool isok=queryexec(sqlstr);

if(isok)

qDebug()<<"数据读取成功";

queryfirst();

QString result="学号:"+queryvalue(0)toString()+" "

+"姓名:"+queryvalue(1)toString()+" "

+"性别:"+queryvalue(2)toString()+" "

+"年龄:"+queryvalue(3)toString();

ui->lbl_query->setText(result);

}

与写入数据基本差不多,这里需要特别注意的是queryfirst();。看看Assistant怎么说的就知道了。原来,query对象在执行完查询语句后,query的位置被置于一个不可用的位置,如果想从query中获取数据,需要设置query到一个可用的记录中才行。方法有好几种,这里我们用了first()成员函数。

好,来看看运行结果。

可以看到软件读取的数据与控制台窗口的数据是一致的。

我们来总结下Qt *** 作SQLite数据库的五步走法决:

第一步,建立一个连接:QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");

第二步,关联数据库文件:dbsetDatabaseName("这里你的数据库文件路径")

第三步,打开数据库:dbopen()

第四步,如果数据库打开成功,就建立一个相关联的QSqlQuery对象:QSqlQuery query(db)

以上就是关于Qt如何实现对SQLite的写入与更新 *** 作的,急!全部的内容,包括:Qt如何实现对SQLite的写入与更新 *** 作的,急!、QT Creator读取一个文件的内容,添加到SQL数据库并用TableView显示、怎样在Qt下连接读写sqlite数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9619859.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存