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

C++ 如何在运行查询后从sql表中获取列,c++,sql,qt,qsqlquery,C++,Sql,Qt,Qsqlquery,我最近一直在为一个简单的登录窗口编写一个程序,这是我一直在做的一个项目的一部分。我有一个SQL数据库,其结构如下: User: __________________________________________ | id | name | username | password | status | | ___+______+__________+__________+________| | 1 | niko | ******** | ******** | admin | | 2

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

User:    
 __________________________________________
| id | name | username | password | status |
| ___+______+__________+__________+________|
| 1  | niko | ******** | ******** | admin  |
| 2  | andy | ******** | ******** | user   |
 ------------------------------------------
qry.prepare("SELECT name FROM Database.User WHERE username = :username AND password = :password")
还有一些类似的专栏。 我在QtC造造中用C++编写了SQL查询如下:< /P>
User:    
 __________________________________________
| id | name | username | password | status |
| ___+______+__________+__________+________|
| 1  | niko | ******** | ******** | admin  |
| 2  | andy | ******** | ******** | user   |
 ------------------------------------------
qry.prepare("SELECT name FROM Database.User WHERE username = :username AND password = :password")
理想情况下,它应该为给定的密码和用户名获取niko或andy或任何其他名称。唯一的问题是我不知道如何使用它。我已经多次阅读了QT文档,但没有找到任何方法将名称作为字符串获取。我已尝试使用以下方式打印:

qDebug<<qry.result()

qDebug这是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;
    };
}
QSqlDatabase数据库;
database=QSqlDatabase::addDatabase(“QSQLITE”,id);
database.setDatabaseName(database路径);
if(database.open())
{
QString query=“从数据库中选择名称。用户名=:用户名和密码=:密码的用户”;
QSqlQuery SqlQuery=QSqlQuery(数据库);
exec(查询);
while(SqlQuery.next())
{
int field_idx=SqlQuery.record().indexOf(“name”);
QString name=SqlQuery.record().value(field_idx).toString();

qDebug()在该prepare指令之后,在何处使用SELECT,您可以绑定参数?因此,您可以有两个语句,如qry.bindValue(“:username”,username);qry..bindValue(“:password”,password);其中username和password是两个变量,用于在SELECT中替换正确的值。将字段_idx定义为SqlQuery.record()时类型,它返回一个错误,说“调用'record',返回类型QSQLCRecord不完整”?也许,您必须#包括似乎有效但有一个问题的内容。它不会将任何内容打印到控制台。