根据用户名称和密码QT+C++重游数据库值
我正在尝试将MYSQL数据库值重新传递到QLine编辑。我想根据用户名和密码重新访问数据。用户名和密码位于mainwindow.cpp中。成功登录后,将打开名为userdetails.cpp的第二个窗口。我想在此userdetails.cpp中显示数据。这是我在这一刻使用的代码根据用户名称和密码QT+C++重游数据库值,c++,mysql,qt,C++,Mysql,Qt,我正在尝试将MYSQL数据库值重新传递到QLine编辑。我想根据用户名和密码重新访问数据。用户名和密码位于mainwindow.cpp中。成功登录后,将打开名为userdetails.cpp的第二个窗口。我想在此userdetails.cpp中显示数据。这是我在这一刻使用的代码 void Userdetails::on_pushButton_4_clicked() { { // database connection QSqlDa
void Userdetails::on_pushButton_4_clicked()
{
{
// database connection
QSqlDatabase database;
database = QSqlDatabase::addDatabase("QMYSQL","MyConnect");
database.setHostName("localhost");
database.setUserName("root");
database.setPassword("");
database.setDatabaseName("electricity");
if(database.open()) {
QSqlQuery query(database);
if (query.prepare(QString("SELECT accno, fullname, address, telephone FROM user_reg_elec WHERE username = :username AND password = :password"))) {
//Add bindings
query.bindValue(":username","username");
query.bindValue(":password","password");
if(query.exec()) {
while(query.next()) {
ui ->dislayaccountnumber ->setText(query.value(0).toString());
ui ->displayname ->setText(query.value(1).toString());
ui ->displayaddress ->setText(query.value(2).toString());
ui ->displattelephoneno ->setText(query.value(3).toString());
// ui ->displayamountoebill ->setText(query.value(4).toString());
}
} else {
qDebug() << "Query did not execute due to: " << query.lastError().text();
QMessageBox::information(this, "Query did not execute", "Not successful executing the query");
}
} else {
qDebug() << "Query not prepared due to the following error: " << query.lastError().text();
}
} else {
qDebug() << "Database not opened due to: " << database.lastError().text();
QMessageBox::information(this, "Database not open", "Not opened successfully");
}
database.close();
}
QSqlDatabase::removeDatabase("MyConnect");
}
当您的应用程序使用登录阶段接受用户时,您应该将用户id保存在应用程序中,并使用set函数成员或甚至作为UserDetails中的参数传递它。因此,当应用程序显示用户详细信息时,可以创建一个直接引用用户抛出其id的SQL查询,避免在where子句中使用任何其他字段 建议: 类用户详细信息 { 私人: std::string\u用户; ... setUserconst标准::字符串和用户{ _用户=用户; } ... }
但是,出于安全原因,我强烈建议您不要使用密码,您已经登录了您的用户,并且用户id是唯一的。您能告诉我们错误并正确地告诉我们您的问题是什么吗??你能提供吗?我想根据在主窗口中键入的用户名和密码重新发送数据。在这里,我绑定了一组用户名和密码。query.bindValue:username,username query.bindValue:password,password,但我想根据主窗口中的用户类型获取用户名和密码。清楚吗?