qt mysql 操作_QT数据库操作

浏览:

在QSqlQuery类中当执行exec()后会把指针放在记录集中第一个记录之上,所以需要调用QSqlQuery::next()来获取第一个数据,下面通过循环体来遍历所有表中的数据。

while(query.next())

{

QString name= query.value(0).toString();

qDebug()<

}

QSqlQuery::value()函数得到当前记录区域中的数据,QSqlQuery::value()默认返回的是一个QVariant类型,Qt提供了几种可远的类型支持,它们是C++的基本的类型,如:int,QString,QByteArray。对于不同类型的转换需要使用Qt提供的函数来实现,例如QVariant::toString()与QVaniant::toInt().

删除:

QSqlQuery query;boolvalue;

value= query.exec(“delete from book where ID = “‘+id+”’”);if(value)

QMessageBox::information(this,"notice","add sucessful!");elseQMessageBox::information(this,"notice","add failed!");

修改:

QSqlQuery query;boolvalue;

value= query.exec(“update book name set name=“‘+name+'"”);

if(value)

QMessageBox::information(this,"notice","add sucessful!");elseQMessageBox::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();

QSqllite好像不支持size函数,在StackOverflow上看到一个方法可以达到效果:

QSqlQuery q;

q.exec("select * from table");

q.last();

qDebug()<< q.at() + 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值