UID:2
// 删除某行记录,直接删除model的某行void CompanyDialog::on_pushButtonDelete_clicked(){ int iRow = tableView->currentIndex().row(); if (QMessageBox::question(this, "提示信息", "确定要删除第 " + QString::number(iRow+1) + " 行纪录?", "确定", "取消") == 0) { table.removeRow(iRow); }}// 在更新数据时,使用record.isNull("fieldname")来判断是否是要更新的字段,如果为false,// 则表示此字段是要被更新的,如果此字段不更新,则设置此字段generated为false:// record.setGenerated("fieldname", false)void CompanyDialog::on_table_beforeUpdate(int row, QSqlRecord &record){ if (record.isNull("pccode") == false && record.value("pccode").toString() == "") { QMessageBox::information(this, "提示信息", "计算机代码不能为空且必须唯一", "确定"); record.setGenerated("pccode", false); } if (record.isNull("pname") == false && record.value("pname").toString() == "") { QMessageBox::information(this, "提示信息", "扣缴义务人名称不能为空且必须唯一", "确定"); record.setGenerated("pname", false); }}// 再见插入数据前,对数据进行验证,如果不符合条件,不允许插入,则清空此记录,// 但此时在界面上插入行还会保留状态,如果要删除此插入状态行,则直接删除model的// 最后一行table.removeRow(table.rowCount() - 1)void CompanyDialog::on_table_beforeInsert(QSqlRecord &record){ if (record.value("pccode").toString() == "" || record.value("pname").toString() == "") { QMessageBox::information(this, "提示信息", "计算机代码和扣缴义务人名称不能为空且必须唯一", "确定"); record.clear(); table.removeRow(table.rowCount() - 1); }}
UID:45813
UID:70775
UID:56069