我有一個非常惱人的問題,它對我來說沒有意義什麼是錯的。我創建一個多形式,ATM應用程序,但由於某種原因,我的DB是說其開放的應用程序,但在輸出它拋出的錯誤:QSqlQuery :: EXEC:數據庫無法打開QT SQLITE數據庫無法打開
這裏是MainMenu的。在那裏我創建的DB
mainMenu::mainMenu(QWidget *parent) :QMainWindow(parent),ui(newUi::mainMenu)
{
ui->setupUi(this);
atmDB = QSqlDatabase::addDatabase("QSQLITE","myConnection");
atmDB.setDatabaseName(Path_to_DB);
QFileInfo checkFile(Path_to_DB);
}
在這裏,它會顯示在屏幕上「連接數據庫」的login.cpp文件中的第一個實例CPP文件
login::login(QWidget *parent) :QDialog(parent),ui(new Ui::login)
{
ui->setupUi(this);
QSqlDatabase logindb;
logindb = QSqlDatabase::database("myConnection",true);
bool x = logindb.open();
if(!x){
ui->loginStatusL->setText("No connection to log-in database!");
}
else
ui->loginStatusL->setText("Database connected!");
}
但是,當用戶按下按鈕登錄它會拋出SqlQuery e RROR,
void login::on_loginLoginB_clicked()
{
QSqlDatabase loginB;
loginB = QSqlDatabase::database("myConnection",true); //open database
QString email, password;
email = ui->loginEmailbox->text();
password = ui->loginPassbox->text();
pubEmail = email;
if(!loginB.isOpen()){
ui->loginStatusL->setText("Connection to database lost");
return;
}
QSqlQuery qry;
if(qry.exec("SELECT * FROM userRecords WHERE email = '"+email+"' and password='"+password+"'")){
int count = 0;
while(qry.next()){
count++;
}
if(count==1){
userMenu usermenu;
atmDB.close();
usermenu.setModal(true);
usermenu.exec();
}
else
ui->loginStatusL->setText("Login failed. Email or password incorrect.");
}
}
我也有我的register.cpp文件同樣的問題,它遵循同樣的邏輯。
這段代碼大部分是無關的;將其縮小到[MCVE](http://stackoverflow.com/help/mcve)。 – MrEricSir