qt----QSqlDatabase数据库
说明
qt有关数据库操作常用QSqlDatabase这个类来操作,使用这个类时,首先在模块中添加 Qt += sql 然后再添加头文件 #include <QtSql>
常用操作
1、创建数据库
2、数据的增、删、改、查
1、创建数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setHostName("MyBrandDB"); db.setDatabaseName("MyDb.db"); db.setUserName("Liu"); db.setPassword("123456"); if(!db.open()) return false;
在使用QSqlDatabase::addDatabase("QOCI","OracleA")函数时,第一个参数是驱动类型主键,第二个是连接名。
2、数据库的增删改查(查询命令就是SQL的通用命令)
创建一张表
QSqlQuery query; //创建分类表 query.exec("create table type_table(id varchar primary key, name varchar)"); query.exec("insert into type_table values('0', '请选择类型')"); query.exec("insert into type_table values('1', '电视')"); query.exec("insert into type_table values('2', '空调')");
查询/获取键值
QSqlQuert query; query.exec(QString("select price from table_name where 条件1='' and 条件2=''")) query.next();//在执行完exec()之后会把指针放在记录集中的第一个记录之上,所以需要调用next()来获取第一个数据 int nPrice = query.value(0).toInt();
修改/写入数据库
QSqlQuery query; QSqlDatabase::database().transaction(); //事物操作 bool bResult = query.exec(QString("update table_name set price=2 where 条件1='' and 条件2=''")); if(bResult) QSqlDatabase::database().commit(); //提交 else QSqlDatabase::database().rollback(); //回滚