QT数据库操作
Posted IT由零开始
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT数据库操作相关的知识,希望对你有一定的参考价值。
浏览:
在QSqlQuery类中当执行exec()后会把指针放在记录集中第一个记录之上,所以需要调用QSqlQuery::next()来获取第一个数据,下面通过循环体来遍历所有表中的数据。
while(query.next())
{
QString name = query.value(0).toString();
qDebug()<<name;
}
QSqlQuery::value()函数得到当前记录区域中的数据,QSqlQuery::value()默认返回的是一个QVariant类型,Qt提供了几种可远的类型支持,它们是C++的基本的类型,如:int,QString,QByteArray。对于不同类型的转换需要使用Qt提供的函数来实现,例如QVariant::toString()与QVaniant::toInt().
删除:
QSqlQuery query;
bool value;
value = query.exec(“delete from book where ID = “‘+id+”’”);
if(value)
QMessageBox::information(this,"notice","add sucessful!");
else
QMessageBox::information(this,"notice","add failed!");
修改:
QSqlQuery query;
bool value;
value = query.exec(“update book name set name=“‘+name+‘"”);
if(value)
QMessageBox::information(this,"notice","add sucessful!");
else
QMessageBox::information(this,"notice","add failed!");
使用了prepare()函数:
query.prepare("insert into student(id, name) values (?, ?)");
query.bindValue(0, 5);
query.bindValue(1, "sixth");
query.exec();
也可以利用addBindValue()函数,这样就可以省去编号,它是按顺序给属性赋值的,如下:
query.prepare("insert into student(id, name) values (?, ?)");
query.addBindValue(5);
query.addBindValue("sixth");
query.exec();
以上是关于QT数据库操作的主要内容,如果未能解决你的问题,请参考以下文章
Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解
VSCode自定义代码片段15——git命令操作一个完整流程