QSqlTableModel增删改查
时间: 2024-08-13 18:02:20 浏览: 73
QSqlTableModel是Qt数据库模型类,它允许您与数据库交互,并提供了一个用户界面友好的数据视图。以下是关于QSqlTableModel的基本操作:
**增(Insert)**:
1. 创建QSqlQuery对象,指定SQL插入语句。
```cpp
QSqlQuery query("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");
if(query.exec()){
QSqlTableModel::insertRows(0, 1);
}
```
2. 使用`insertRows()`方法添加新行到表头。
**删(Delete)**:
1. 获取当前选中的行或范围。
```cpp
int currentIndex = model.index(row, column);
model.removeRow(currentIndex);
```
2. 或者根据条件删除行。
```cpp
QSqlQuery deleteQuery("DELETE FROM table_name WHERE condition");
if(deleteQuery.exec()){
QModelIndexList rowsDeleted = model.removeRows(index, number_of_rows_to_delete);
}
```
**改(Update)**:
1. 修改单行或多行的数据。
```cpp
QSqlQuery updateQuery("UPDATE table_name SET column1='new_value' WHERE id=1");
updateQuery.exec();
model.setData(model.index(0, 0), "new_value"); // 更改模型中的数据
model.submitAll(); // 提交更改
```
**查(Read)**:
1. 查询数据并填充模型。
```cpp
QSqlQuery selectQuery("SELECT * FROM table_name");
selectQuery.exec();
while(selectQuery.next()){
QSqlRecord record = selectQuery.record();
QSqlTableModel::setModelData(model, model.createIndex(selectQuery.row(), 0), record.value(record.fieldName(0)));
}
```
阅读全文