目的:对应用一中的功能进行完善,添加删除功能
.h
private slots:
.................
void delItem();
.cpp
void MainWindow::delItem()
{
int id;
int rowToDel;
QMap<int, int> rowMap;
QAbstractItemModel *model = ui->tableView->model();
QItemSelectionModel *selections = ui->tableView->selectionModel();
QModelIndexList selected = selections->selectedIndexes();
foreach (QModelIndex index, selected)
{
rowMap.insert(index.row(), 0);
}
QMapIterator<int, int> rowMapIterator(rowMap);
rowMapIterator.toBack();
while (rowMapIterator.hasPrevious())
{
rowMapIterator.previous();
rowToDel = rowMapIterator.key();
QModelIndex index=model->index(rowToDel,0);//rowNum,columnNum为行列号
id=index.sibling(rowToDel,0).data().toInt();
QSqlQuery query;
QString cmd;
cmd =QString("delete from person where id = %1").arg(id);
query.exec(cmd);
if(!query.isActive())
{
// QMessageBox::critical(this,"提示","删除数据失败!");
return;
}
else
{
//QMessageBox::critical(this,"提示","删除数据成功!");
dataModel->removeRow(rowToDel);
}
}
selectDb();
return;
}
效果:实现了删除功能