Qt中对数据库的操作主要通过QSqlQuery实现,QSqlQuery提供了执行数据库语句的方法,在Qt中利用QSqlQuery类实现了执行SQL语句。它可以返回所有的执行结果,当建立好数据库连接好后可以通过使用QSqlQuery::exec()执行SQL语句。
QT提供了QSqlQuery类对数据库记录的Select、Insert、Update、Delete操作。
QSqlQuery提供的常用方法如下:
next():可以得到下条记录的位置。
previous():可以得到上条记录的位置。
first():可以得到第一条记录的位置。
last():可以得到最后一条记录的位置。
seek():可以得到任意一条记录的位置。
需要注意的是:exec()执行会将QSqlQuery对象指针只在第一条记录上,而如果你想在循环条件中使用next()的话,那么获取的记录会从第二条开始,解决方法:你可以直接在循环条件使用next(),而之前不使用exec()。
Select操作:
QSqlQuery query;
QString s=QString("select * from tms where TMS_USER=%1").arg(user);
query.exec(s);
query.first();
QString i1=query.value(0).toString();
QString i2=query.value(1).toString();
qDebug()<<i1;
qDebug()<<i2;
Insert操作:
QSqlQuery query;
QString a=this->ui->a->text();
QString b=this->ui->b->text();
QString c=this->ui->comboBox->currentText();
query.prepare("INSERT INTO job (job_id, job_name, dept_id) VALUES (:a, :b, :c)");
query.bindValue(":a", a);
query.bindValue(":b", b);
query.bindValue(":c",c);
query.exec();
Update操作:
QSqlQuery query;
query.prepare("UPDATE employee SET salary = ? WHERE id = 1003");
query.bindValue(0, 5000);
query.exec();
Delete操作:
QSqlQuery query;
query.prepare("UDELETE FROM employee WHERE id = 1007");