QT数数据库Mysql中 QSqlQuery、QSqlQueryModel 、和QSqlTableModel实现增删改查代码

QT数数据库Mysql中 QSqlQuery、QSqlQueryModel 、和QSqlTableModel实现增删改查代码,第1张

用qsqltablemodel的insetrow()、setdata()、submitall()函数实现增;

 officeTable->insertRow(0);

 officeTable->setData(officeTable->index(0, 0), row);

 officeTable->setData(officeTable->index(0, 1), newWnd->imageFileEditor->currentIndex());

 officeTable->setData(officeTable->index(0, 2), newWnd->locationText->text());

 officeTable->setData(officeTable->index(0, 3), newWnd->countryText->currentText());

 officeTable->setData(officeTable->index(0, 4), newWnd->descriptionEditor->toPlainText());

 officeTable->submitAll();

用removerow()、submitall()函数实现删;

 int officeCount = officeTable->rowCount();

 officeTable->removeRow(id);

 for(int i = id; i < officeCount - 1;i++)

 {

  officeTable->setData(officeTable->index(i, 0), i);

 }

 officeTable->submitAll();

用QSqlRecord类的setvalue实现改;

  QSqlRecord recordCurrentRow = officeTable->record(id);

  recordCurrentRowsetValue("id", id - 1);

  officeTable->setRecord(id - 1, recordCurrentRow);

  officeTable->submitAll();

用QSqlRecord类的value进行比较实现查;

int Dialog::findArtistId(const QString &artist)

{

    QSqlTableModel artistModel = model->relationModel(2);

    int row = 0;

    while (row < artistModel->rowCount()) {

        QSqlRecord record = artistModel->record(row);

        if (recordvalue("artist") == artist)

            return recordvalue("id")toInt();

        else

            row++;

    }

    return addNewArtist(artist);

}

建议用Model和View

用QSqlQuery直接 *** 作数据库,执行数据库语句,将你QTableWidget中的数据替换到语句中对应的字段

例如:

QString(“%1,%2”)arg("wang",“25”)

可以实现你需要的功能

点击一下查看按钮,会添加一条信息,在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板子对数据库的支持不好。

以上就是关于QT数数据库Mysql中 QSqlQuery、QSqlQueryModel 、和QSqlTableModel实现增删改查代码全部的内容,包括:QT数数据库Mysql中 QSqlQuery、QSqlQueryModel 、和QSqlTableModel实现增删改查代码、求帮忙解决,基于qt下,QListWidget里怎样显示来自数据库的信息,当前桌,人员,时间…、Qt如何实现对SQLite的写入与更新 *** 作的,急!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存