qt平台连接数据库,实现用户登陆注册代码
时间: 2023-07-15 08:13:54 浏览: 56
在 Qt 平台上连接数据库并实现用户登录注册的代码如下:
首先,在 Qt 项目中添加需要的库文件,包括 QtSql 和 QSqlDatabase。
```c++
#include <QtSql>
```
然后,连接数据库。我们使用 SQLite 数据库,连接代码如下:
```c++
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("myDatabase.db"); // 数据库名称
if (!db.open()) {
qDebug() << "Failed to open database!";
return;
}
```
接下来,定义一个用户类,包含用户名和密码两个属性:
```c++
class User {
public:
QString username;
QString password;
};
```
实现用户注册功能:
```c++
void registerUser(User user) {
QSqlQuery query;
query.prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
query.bindValue(":username", user.username);
query.bindValue(":password", user.password);
if (!query.exec()) {
qDebug() << "Failed to register user!";
} else {
qDebug() << "User registered successfully!";
}
}
```
实现用户登录功能:
```c++
bool loginUser(User user) {
QSqlQuery query;
query.prepare("SELECT * FROM users WHERE username = :username AND password = :password");
query.bindValue(":username", user.username);
query.bindValue(":password", user.password);
if (!query.exec()) {
qDebug() << "Failed to login!";
return false;
}
if (query.next()) {
qDebug() << "User logged in successfully!";
return true;
}
qDebug() << "Username or password is incorrect!";
return false;
}
```
完整代码如下:
```c++
#include <QtSql>
class User {
public:
QString username;
QString password;
};
void registerUser(User user) {
QSqlQuery query;
query.prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
query.bindValue(":username", user.username);
query.bindValue(":password", user.password);
if (!query.exec()) {
qDebug() << "Failed to register user!";
} else {
qDebug() << "User registered successfully!";
}
}
bool loginUser(User user) {
QSqlQuery query;
query.prepare("SELECT * FROM users WHERE username = :username AND password = :password");
query.bindValue(":username", user.username);
query.bindValue(":password", user.password);
if (!query.exec()) {
qDebug() << "Failed to login!";
return false;
}
if (query.next()) {
qDebug() << "User logged in successfully!";
return true;
}
qDebug() << "Username or password is incorrect!";
return false;
}
int main() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("myDatabase.db"); // 数据库名称
if (!db.open()) {
qDebug() << "Failed to open database!";
return -1;
}
User user1;
user1.username = "user1";
user1.password = "password1";
registerUser(user1);
User user2;
user2.username = "user2";
user2.password = "password2";
registerUser(user2);
User loginUser1;
loginUser1.username = "user1";
loginUser1.password = "password1";
loginUser(loginUser1);
User loginUser2;
loginUser2.username = "user2";
loginUser2.password = "password3";
loginUser(loginUser2);
return 0;
}
```