qt sqltablemodel
时间: 2023-07-09 20:46:23 浏览: 94
在Qt中,可以使用QSqlTableModel来实现对数据库表的操作,包括增删改查等。下面是具体的使用方法:
1. 创建QSqlTableModel对象
```c++
QSqlTableModel *model = new QSqlTableModel(this, db);
```
其中,this为父对象指针,db为数据库连接对象。
2. 设置表名
```c++
model->setTable("Person");
```
其中,"Person"为要操作的表名。
3. 查询数据
```c++
model->select();
```
在这里,我们使用select()函数来查询数据。
4. 设置视图
```c++
ui->tableView->setModel(model);
```
在这里,我们将QSqlTableModel对象设置给tableView,即可在视图中显示数据。
5. 添加数据
```c++
QSqlRecord record;
record.setValue("name", "Tom");
record.setValue("age", 18);
record.setValue("sex", "male");
model->insertRecord(-1, record);
```
在这里,我们首先创建一个QSqlRecord对象,并使用setValue()函数来设置字段值,然后使用insertRecord()函数来插入记录。
6. 更新数据
```c++
int row = ui->tableView->currentIndex().row();
QSqlRecord record = model->record(row);
record.setValue("age", 20);
model->setRecord(row, record);
```
在这里,我们首先获取当前选中的行号,然后获取对应的QSqlRecord对象,并使用setValue()函数来设置字段值,最后使用setRecord()函数来更新记录。
7. 删除数据
```c++
int row = ui->tableView->currentIndex().row();
model->removeRow(row);
```
在这里,我们首先获取当前选中的行号,然后使用removeRow()函数来删除记录。
需要注意的是,对于QSqlTableModel对象的修改操作,需要调用submitAll()函数来提交修改,否则修改不会生效。例如:
```c++
model->submitAll();
```
以上就是使用QSqlTableModel来对数据库表进行操作的基本方法。需要注意的是,QSqlTableModel是对数据库表的一个封装,对于一些复杂的需求,可能需要使用其他更加灵活的方法来操作数据库。
阅读全文