QT += sql
QSqlDatabase //类实现了数据库连接的操作
QSqlQuery //类执行SQL语句
QSqlRecord //类封装数据库所有记录
QSqlDatabase
- 创建一个数据库
//SqlDatabase为实现数据库连接的类
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//创建一个数据库,添加数据库驱动
//db.setHostName("localhost"); //数据库主机名
//db.setDatabaseName("aa"); //数据库名
//db.setUserName("bb"); //数据库用户名
//db.setPassword("123"); //数据库密码
//db.open(); //打开数据库连接
//db.close(); //释放数据库连接
- 打开一个已有数据库,数据库名字为db_weather.db,里面内容为各省 市 区域信息
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("db_weather.db");
if (!db.open())
{
qDebug() << "database open fail!";
}
else
{
qDebug() << "database open success!";
}
- 打开一个已有数据库,数据库名字为db_weather.db,里面内容为各省 市 区域信息。将里面的省份信息添加到一个StringList,并设置到界面上的一个下拉框里面
//得到省份信息,设置到下拉框里面
void Setting::getProvinceList()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("db_weather.db");
if (!db.open())
{
qDebug() << "database open fail!";
}
else
{
qDebug() << "database open success!";
QSqlQuery q; //新建一个查询句柄
q.exec("select * from provinces");//获取省份列表
while (q.next())
{
QString provinceId = q.value(0).toString();
QString provinceName = q.value(1).toString();
qDebug() << "province:" << provinceId << provinceName;
provinceList.append(provinceName);//将省份串成一个StringList
}
ui->province_comboBox->clear();//设置前先clean下
ui->province_comboBox->addItems(provinceList);
}
db.close();
qDebug()<<"database closed!";
}