根据用户名称和密码QT+C++重游数据库值

根据用户名称和密码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

我正在尝试将MYSQL数据库值重新传递到QLine编辑。我想根据用户名和密码重新访问数据。用户名和密码位于mainwindow.cpp中。成功登录后,将打开名为userdetails.cpp的第二个窗口。我想在此userdetails.cpp中显示数据。这是我在这一刻使用的代码

    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,但我想根据主窗口中的用户类型获取用户名和密码。清楚吗?