前面介绍了数据库都是要使用SQL语句,并在显示方面不方便,不够直观反映数据。
上节介绍一个模型,可以直接利用该模型连接数据库,可以在QT的可视化界面TabView直接对数据库进行操作,并且不需要使用SQL语句。
思路:
1.按照前面的方式,选择数据库的类型,打开数据库
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setUserName("root");
//db.setPassword("123");
db.setDatabaseName("stu");
if(!db.open())
{
return ;
}
2.设置模型,把二维表装进模型中。
model=new QSqlTableModel(this);
model->setTable("student");
3. 本例用tableView控件作为显示,把model放在tableView
ui->tableView->setModel(model);
4.对tableView控件进行操作即可
重点:
给字段起别名,在数据库中可能有些不一样,因此可以在tableView中重命名。
bool QSqlQueryModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant & value, int role = Qt::EditRole)
如:model->setHeaderData(0,Qt::Horizontal,"学号");
2.提交问题。在tabVlew上我们可以直接对数据进行修改,如把学号1改成2,直接可以改变。可以设置手动提交或其他方式。
void QSqlTableModel::setEditStrategy(EditStrategy strategy)
如:model->setEditStrategy(QSqlTableModel::OnManual