这是我写的一些代码,但是显示到那个上面我就不会了
void MainWindow::on_btn_edit_clicked()
{
DiaAddStu * diaaddstu = nullptr;
QSqlQuery sql(m_prtStuSql->m_db);
int rowIndex = ui->tableWidget->currentRow();
int id = ui->tableWidget->item(rowIndex,1)->text().toUInt();
QString strSql = QString("select * from student where id = %1").arg(id);
if(sql.exec(strSql))
{
while(sql.next())
{
QString name = sql.value("name").toString();
diaaddstu->ui->le_name->setText(name);
int age = sql.value("name").toUInt();
diaaddstu->ui->spinBox->setValue(age);
QString garde = QString::number(sql.value("name").toUInt());
diaaddstu->ui->le_grade->setText(garde);
QString uiclass = QString::number(sql.value("name").toUInt());
diaaddstu->ui->le_class->setText(uiclass);
QString studentid = QString::number(sql.value("name").toUInt());
diaaddstu->ui->le_studentid->setText(studentid);
QString phone = sql.value("name").toString();
diaaddstu->ui->le_phone->setText(phone);
QString wechat = sql.value("name").toString();
diaaddstu->ui->le_wechat->setText(wechat);
}
//调用弹框,好像是这个有问题,单机修改就直接关闭了
m_addStu.exec();
}
//更新表
updateTable();
}
【以下回答由 GPT 生成】
以上问题的代码存在一些错误,以下是修改后的代码:
void MainWindow::on_btn_edit_clicked()
{
DiaAddStu * diaaddstu = new DiaAddStu(this); // 创建DiaAddStu对象
QSqlQuery sql(m_prtStuSql->m_db);
int rowIndex = ui->tableWidget->currentRow();
int id = ui->tableWidget->item(rowIndex, 0)->text().toInt(); // 修改获取id的方式
QString strSql = QString("select * from student where id = %1").arg(id);
if(sql.exec(strSql))
{
if(sql.next()) // 只需要取一行数据
{
QString name = sql.value("name").toString();
diaaddstu->ui->le_name->setText(name);
int age = sql.value("age").toInt();
diaaddstu->ui->spinBox->setValue(age);
QString grade = sql.value("grade").toString();
diaaddstu->ui->le_grade->setText(grade);
QString uiclass = sql.value("uiclass").toString(); // 修改字段名
diaaddstu->ui->le_class->setText(uiclass);
QString studentid = sql.value("studentid").toString(); // 修改字段名
diaaddstu->ui->le_studentid->setText(studentid);
QString phone = sql.value("phone").toString();
diaaddstu->ui->le_phone->setText(phone);
QString wechat = sql.value("wechat").toString();
diaaddstu->ui->le_wechat->setText(wechat);
diaaddstu->exec(); // 显示DiaAddStu对话框
}
}
delete diaaddstu; // 释放DiaAddStu对象
}
通过以上修改,从数据库中获取的数据将正确显示在DiaAddStu对话框的相应UI元素中。请注意,修改后的代码中的字段名需要根据数据库中的实际字段名进行调整。同时,确保DiaAddStu对象已正确创建并在使用后进行释放。
【相关推荐】