如何在 运行 查询后从 sql table 中获取列
How to get a column from an sql table after running query
我最近一直在编写一个用于简单登录的程序 window 作为我一直在从事的项目的一部分。我有一个 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()
然而只有 returns "0x5561eb32d240" 我不确定这是什么? Qt 没有记录 result(),我对结果的 return 唯一了解的是它是一个 const QSql 类型。
关于我如何能够 return 命名为字符串供以后使用的任何想法?
这是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;
};
}
我最近一直在编写一个用于简单登录的程序 window 作为我一直在从事的项目的一部分。我有一个 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()
然而只有 returns "0x5561eb32d240" 我不确定这是什么? Qt 没有记录 result(),我对结果的 return 唯一了解的是它是一个 const QSql 类型。
关于我如何能够 return 命名为字符串供以后使用的任何想法?
这是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;
};
}