我最近开始qt并被问到我是否可以建立一个简单的函数,以一种方法(例如登录)返回具有不同类型的int字符串数据时间的数据,以防我通过方法用户名和密码,它将返回所有用户数据我在哪里可以在主窗体中调用该函数并在其中使用用户数据。我已经搜索并找到了一些示例,但仍然很难实现,我已经使用了这个示例,但是它仅返回一个值,不再是代码
bool database_mysql::test_query(QList<QString>& namesList)
{
bool result = false;
namesList.clear();//clear possible old entries
if(!connect()){
qDebug() << "Database Not Connected!";
}else{
QSqlQuery query;
query.exec("SELECT * FROM Users");
while (query.next()){
QString name = query.value(2).toString();
namesList.append(name);
}
result = true;
}
return result;
}
以及用于传递用户名和密码以检查用户的代码 谁能帮忙。
答案 0 :(得分:0)
您应该声明自己的class
/ struct
来保存此数据。例如,您可以使用以下声明创建文件User.h
:
#pragma once
struct User {
int id;
QString name;
QDateTime joined;
// anything else in your DB
};
在数据库模块的标题中(例如database_mysql.h
):
#pragma once
struct User; // forward declaration
class database_mysql {
public:
bool database_mysql::test_query(QList<User>& users);
};
然后,在数据库源文件(例如database_mysql.cpp
)中:
#include <database_mysql.h>
#include <User.h>
bool database_mysql::test_query(QList<User>& users) {
...
}
然后,test_query
函数应从数据库中检索行,实例化User
对象,然后将这些对象插入users
列表中。