Qt 用户到数据库的连接工作得非常好,但是停车连接没有。我用同样的代码连接了register_user和parking,展示了一个简单的示例,说明了您正在尝试完成什么以及为什么它不起作用。由于您使用的是“相同的代码来连接register\u user和parki

Qt 用户到数据库的连接工作得非常好,但是停车连接没有。我用同样的代码连接了register_user和parking,展示了一个简单的示例,说明了您正在尝试完成什么以及为什么它不起作用。由于您使用的是“相同的代码来连接register\u user和parki,qt,sqlite,Qt,Sqlite,用户到数据库的连接工作得非常好,但是停车连接没有。我用同样的代码连接了register_user和parking,展示了一个简单的示例,说明了您正在尝试完成什么以及为什么它不起作用。由于您使用的是“相同的代码来连接register\u user和parking”,因此它们将具有相同的连接名。因此,register_user和parking的两个实例不能同时连接,它们中只有一个会被连接。如果您想要有两个独立的连接,那么请使用两个不同的连接名称(正如我上面所建议的)。希望这能对你的困境有所启发。我已


用户到数据库的连接工作得非常好,但是停车连接没有。我用同样的代码连接了register_user和parking,展示了一个简单的示例,说明了您正在尝试完成什么以及为什么它不起作用。由于您使用的是
“相同的代码来连接register\u user和parking”
,因此它们将具有相同的连接名。因此,register_user和parking的两个实例不能同时连接,它们中只有一个会被连接。如果您想要有两个独立的连接,那么请使用两个不同的连接名称(正如我上面所建议的)。希望这能对你的困境有所启发。我已经把密码从垃圾桶移到了我的答案中。
#ifndef LOGIN_H
#define LOGIN_H
#include <QMainWindow>
#include <QtSql>
#include <QDebug>
#include <QFileInfo>
#include <main_interface.h>


namespace Ui {
class Login;
}

class Login : public QMainWindow
{
Q_OBJECT
public:
QSqlDatabase mydb;

void connClose()
{
    mydb.close();
    mydb.removeDatabase(QSqlDatabase::defaultConnection);
}

bool connOpen()
{
    mydb=QSqlDatabase::addDatabase("QSQLITE");
    mydb.setDatabaseName("C:/SQLite/sqlite-tools-win32-x86-3250200/IPark.db");

    if(!mydb.open())
    {
        qDebug()<<("Failed to open database");
        return false;
    }
    else
    {
        qDebug()<<("Connected. . .");
        return true;
    }
}

public:
explicit Login(QWidget *parent = 0);
~Login();

private slots:
void on_pushButton_clicked();

void on_pushButton_2_clicked();



private:
Ui::Login *ui;
};

#endif // LOGIN_H
#ifndef REGISTER_USER_H
#define REGISTER_USER_H
#include <QDialog>
#include "login.h"

namespace Ui {
class register_user;
}

class register_user : public QDialog
{
Q_OBJECT

public:
Login conn;
explicit register_user(QWidget *parent = 0);
~register_user();

private slots:
void on_pushButton_clicked();

private:
Ui::register_user *ui;
};

#endif // REGISTER_USER_H
#include <login.h>
#include "login.h"
#include "register_user.h"
#include "ui_register_user.h"
#include <QMessageBox>

register_user::register_user(QWidget *parent) :
QDialog(parent),
ui(new Ui::register_user)
{
ui->setupUi(this);

        if(!conn.connOpen())
             ui->label_reg->setText("Failed to open database");
         else
             ui->label_reg->setText("Connected. . .");


}

register_user::~register_user()
{
delete ui;
}

void register_user::on_pushButton_clicked()
{
Login conn;
QString username, plate_number, name;
username=ui->lineEdit_Username->text();
plate_number=ui->lineEdit_Plate_Number->text();
name=ui->lineEdit_Name->text();


  QSqlQuery qry;
  qry.prepare("insert into User(User_id, plate_number, name, spot_number, credit, order_id) values('"+username+"','"+plate_number+"','"+name+"',NULL, NULL, NULL)");

 if(qry.exec()){
     QMessageBox::critical(this, tr("SAVE"), tr("SAVED"));
 }

 conn.connClose();
}
#ifndef PARKING_H
#define PARKING_H

#include <QDialog>
#include "login.h"


namespace Ui {
class parking;
}

class parking : public QDialog
{
Q_OBJECT

public:
Login conn;
explicit parking(QWidget *parent = 0);
~parking();

private slots:

void on_ParkSpace100_clicked();

void on_ParkSpace101_clicked();

void on_ParkSpace102_clicked();

void on_ParkSpace103_clicked();

private:
Ui::parking *ui;
};

#endif // PARKING_H
#include <login.h>
#include "login.h"
#include "parking.h"
#include "ui_parking.h"
#include "reservation.h"
#include <QMessageBox>



int status = 0;

parking::parking(QWidget *parent):
QDialog(parent),
ui(new Ui::parking)
{
ui->setupUi(this);
Login conn;

if(!conn.connOpen())
     ui->label->setText("Failed to open database");
 else
     ui->label->setText("Connected. . .");

}

parking::~parking()
{
delete ui;
}



void parking::on_ParkSpace100_clicked()
{

Login conn;




QSqlQuery qry;
qry.prepare("insert into User(User_id, plate_number, name, spot_number, credit, order_id) values('105,0123,'Amethyst',NULL, NULL, NULL)");

if(qry.exec()){
   QMessageBox::warning(this, tr("SAVE"), tr("SAVED"));
}

}

void parking::on_ParkSpace101_clicked()
{
Login conn;

QSqlQuery qry;
conn.connOpen();



qry.prepare("select name from User where spot_number = 101");
bool value = qry.exec();
if(value == true)//true : then someone is on the spot
{
    conn.connClose();
    QMessageBox::warning(this, "Error", "Someone's already in the spot");
    qDebug("Inside ParkSpace101");
}

hide();
Reservation b;
b.setModal(true);
b.setWindowTitle("Reservation Page");
b.exec();

}

void parking::on_ParkSpace102_clicked()
{
QMessageBox::warning(this,"WARNING", "Someone's already in the spot.");
}

void parking::on_ParkSpace103_clicked()
{
Login conn;

QSqlQuery qry;
conn.connOpen();



qry.prepare("select name from User where spot_number = 101");
bool value = qry.exec();
if(value == true)//true : then someone is on the spot
{
    conn.connClose();
    QMessageBox::warning(this, "Error", "Someone's already in the spot");
    qDebug("Inside ParkSpace101");
}

hide();
Reservation b;
b.setModal(true);
b.setWindowTitle("Reservation Page");
b.exec();

}
mydb = QSqlDatabase::addDatabase("QSQLITE", your_connection_name_here);
explicit Login(const QString &connectionName, QWidget *parent = 0);
mydb.removeDatabase(m_connectionName);
...
mydb = QSqlDatabase::addDatabase("QSQLITE", m_connectionName);
Login conn("register_user_sqlite_connection");
void setConnectionName(const QString &connectionName);
Login conn;
conn.setConnectionName("register_user_sqlite_connection");