学习目标:
连接数据库,并在tableView上面实现增删改查
连接数据库:
连接MySql数据库 ,并设置模型
database=QSqlDatabase::addDatabase("QMYSQL");
//连接数据库
database.setHostName("127.0.0.1");//数据库服务器ip
database.setUserName("root");//数据库用户名
database.setPassword("123456");//密码
database.setDatabaseName("st");//使用哪个数据库
//打开数据库
if(!database.open())//数据库打开失败
{
QMessageBox::warning(this,"错误!",database.lastError().text());
return ;
}
//设置模型
model =new QSqlTableModel(this);
model->setTable("student");//指定使用哪一个表
//把model放在view里面
ui->tableView->setModel(model);
//显示model里面的数据
model->select();
//设置model的编辑模式,手动提交修改
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
添加:
void Teacher::on_addpushButton_clicked()
{
//添加空记录
QSqlRecord record =model->record();//获取空记录
//获取行号
int row=model->rowCount();
model->insertRecord(row,record);
}
取消:
void Teacher::on_cancelpushButton_clicked()
{
model->revertAll();
model->submitAll();
}
确认:
void Teacher::on_definepushButton_clicked()
{
model->submitAll();
}
删除:
//删除
void Teacher::on_deletepushButton_clicked()
{
//获取选中的模型
QItemSelectionModel *smodel= ui->tableView->selectionModel();
//取出模型中的索引
QModelIndexList list= smodel->selectedRows();
//删除所有选中的行
for(int i=0;i<list.size();i++)
{
model->removeRow(list.at(i).row());
};
}
查找:
//查找
void Teacher::on_pushButton_clicked()
{
QString Sno = ui->lineEdit->text();
QString str =QString(" Sno = '%1' ").arg(Sno);
model->setFilter(str);
model->select();
}