Witam
Ostatnio chciałem zrobić program w którym byłaby możliwość logowania się a odpowiednie dane znajdowałyby się w bazie danych MySql. Znalazłem dwa poradniki na ten temat, niestety żadna metoda w moim wypadku nie działa. Po kliknięciu na przycisk "Zaloguj" kompletnie nic się nie dzieje. Dodam tylko, że gdy przeniosę bazę danych w inne miejsce niż zadeklarowane to program poprawnie wyświetla komunikaty o braku bazy. Używam Qt Creator 4.5.1 i piszę w C++.
#include "login.h"
#include "ui_login.h"
#include <cstdlib>
#include <QMessageBox>
login::login(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::login)
{
ui->setupUi(this);
Konta = QSqlDatabase::addDatabase("QSQLITE");
Konta.setDatabaseName("C:/Users/marb1/Desktop/projekt/projekt/storage.sqlite");
QFileInfo checkFile("C:/Users/marb1/Desktop/projekt/projekt/storage.sqlite");
if(checkFile.isFile())
{ if(!Konta.open())
{
QMessageBox::information(this,"Stan","Nie połączono z bazą");
}
}
}
login::~login()
{
delete ui;
// Konta.close();
}
void login::on_exit_clicked()
{
exit(0);
}
void login::on_login_2_clicked()
{ QString Username, Password;
Username=ui->username->text();
Password=ui->password->text();
if(!Konta.isOpen()){QMessageBox::warning(this,"BŁąd","Brak połączenia z bazą!");}
else {
QSqlQuery qry;
if(qry.exec("select * from users where Login='"+ Username +"' and Haslo='"+ Password +"'"))
{int x=0;
while(qry.next())
{
x++;
}
if(x==1)
{
ui->stan->setText("zalogowano");
}
if (x<1)
{
ui->stan->setText("Zle dane");
}
if(x>1)
{
ui->stan->setText("zleee");
}
}
}
}