繁体   English   中英

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

[英]How to get a column from an sql table after running query

我最近一直在为一个简单的登录窗口编写程序,作为我一直在从事的项目的一部分。 我有一个结构如下的 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;
    };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM