gpt4 book ai didi

c++ - 运行查询后如何从sql表中获取列

转载 作者:行者123 更新时间:2023-11-30 04:55:10 35 4
gpt4 key购买 nike

我最近一直在为一个简单的登录窗口编写一个程序,作为我一直从事的项目的一部分。我有一个结构如下的 SQL 数据库:

User:    
__________________________________________
| id | name | username | password | status |
| ___+______+__________+__________+________|
| 1 | niko | ******** | ******** | admin |
| 2 | andy | ******** | ******** | user |
------------------------------------------

还有一些类似的专栏。我在 QTcreator 中用 c++ 准备了一个 sql 查询,如下所示:

qry.prepare("SELECT name FROM Database.User WHERE username = :username AND password = :password")

理想情况下,对于给定的密码和用户名,应该得到 niko 或 andy 或任何其他名称。唯一的问题是我不确定如何使用它。我已经多次阅读 QT 文档,但没有找到任何获取字符串名称的方法。我尝试使用以下方法打印它:

qDebug<<qry.result()

但是只返回“0x5561eb32d240”我不确定这是什么? Qt 没有记录 result(),关于结果的返回,我唯一知道的是它是一个 const QSql 类型。

关于我如何能够将名称作为字符串返回供以后使用的任何想法?

最佳答案

这是 qsqlite 的例子。它必须是工作。

QSqlDatabase data_base;
data_base = QSqlDatabase::addDatabase("QSQLITE", id);
data_base.setDatabaseName(data_base_path);

if (data_base.open())

{
QString query = "SELECT name FROM Database.User WHERE username = :username AND password = :password";
QSqlQuery SqlQuery = QSqlQuery( data_base );
SqlQuery.exec( query );

while (SqlQuery.next())
{
int field_idx = SqlQuery.record().indexOf("name");
QString name = SqlQuery.record().value( field_idx ).toString();
qDebug() << name;
};
}

关于c++ - 运行查询后如何从sql表中获取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53196410/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com