Я использую qt для создания логина пользователя.Я использую Sqlite в качестве базы данных и застрял по какой-то причине, она не работает должным образом.Я смог полностью обойти экран входа в систему только при наборе в первой строке из базы данных.Любой другой пользователь не может войти в систему (строка 2, 3,4 ... в базе данных).За последние дни я читал всевозможные посты и не нашел правильного решения.Вот мой кодЯ также попытался создать запрос через QSqlQuery и передать его в объект QSQlQueryModel, который вообще не работал.
void MainWindow::on_login_clicked()
{
QSqlDatabase m_db;
QString path = "C:/Users/annea/Summer2019Database.db";
m_db = QSqlDatabase::addDatabase("QSQLITE");
m_db.setDatabaseName(path);
m_db.open();
if (!m_db.open())
{
qDebug() << "Error: connection with database fail";
}
else
{
qDebug() << "Database: connection ok";
}
QString username = ui->username->text();
QString password = ui->password->text();
QSqlQueryModel *queryModel = new QSqlQueryModel;
queryModel->setQuery("SELECT * FROM [User Database] WHERE Username= username"); //select the row of where the Username == username
queryModel->query().exec(); //execute it (not really sure why or what this does
if(queryModel->record(0).value(1).toString()== password) //if a row is found check column 2 for password
{
destroy(); //destroy current window
if(queryModel->record(0).value(3).toString()== 1) //if id is equal to one log in as user
{
user.showMaximized();
}
else {
dbManager.showMaximized();
}
}
else {
qWarning("Wrong Password or Username");
}
}