但它不能从数据库中获取数据。我不想检索表中的数据,而是想在特定的行编辑中显示数据。错误是什么?有什么修改吗?
这是我正在使用的代码:
void Userdetails::on_pushButton_4_clicked()
{
delete ui;
// database connection
database = QSqlDatabase::addDatabase("QMYSQL");
database.setHostName("localhost");
database.setUserName("root");
database.setPassword("");
database.setDatabaseName("electricity");
if(database.open()) {
QSqlQuery qry;
QSqlQuery query(QSqlDatabase::database("MyConnect"));
query.prepare(QString("SELECT accno, fullname, address, telephone FROM user_reg_elec WHERE username = :username AND password = :password"));
if(query.exec()) {
query.exec();
while(query.next()) {
ui ->dislayaccountnumber ->setText(query.value(0).toString());
ui ->displayname ->setText(query.value(3).toString());
ui ->displayaddress ->setText(query.value(4).toString());
ui ->displattelephoneno ->setText(query.value(5).toString());
// ui ->displayamountoebill ->setText(query.value(6).toString());
}
} else {
QMessageBox::information(this, "Query did not execute", "Not successful executing the query");
}
} else {
QMessageBox::information(this, "Database not open", "Not opened successfully");
}
database.close();
}
1条答案
按热度按时间8hhllhi21#
该代码有四个主要问题:
您已删除
ui
在代码的开头。因此,第一行调用ui->
会使程序崩溃。您的查询定义不正确。另外,您为连接选择名称的方式也不正确。
您已经执行了两次查询(一次就足够了)。
您没有为绑定值
username
以及password
.请使用以下选项:
请添加
#include <QSqlError>
如果尚未包含此库,请转到顶部。只对提问者说:
要在新窗口中显示详细信息,从数据库中获取目标用户的信息后,可以创建一个新对话框(窗口),并在其中显示结果,如下所示: