【问题标题】:QString in sqlite selectsqlite选择中的QString
【发布时间】:2017-10-28 14:07:41
【问题描述】:

我想搜索名为 x 的字符串。

QString x=abc->text();

QSqlQuery qry("SELECT nazwa FROM piosenki WHERE nazwa like'%x%' ");

x 被视为单个字符,不像 abc->text(); 我能做些什么来选择 QString x? 对我来说重要的是 SQlite LIKE 子句,因为我想从我的数据库中选择所有类似于 abc->text()。

【问题讨论】:

    标签: c++ qt sqlite


    【解决方案1】:

    一个简单的选择是使用.arg()

    QString x=abc->text();
    QSqlQuery query(QString("SELECT nazwa FROM piosenki WHERE nazwa like'%%1%'").arg(x));
    if(query.exec()){
        int fieldNo = query.record().indexOf("nazwa");
        while (query.next()) {
            qDebug()<< query.value(fieldNo).toString();
        }
    }
    

    或者prepare()bindValue()

    QString x=abc->text();
    QSqlQuery query;
    query.prepare("SELECT nazwa FROM piosenki WHERE nazwa LIKE :nazwa");
    query.bindValue(":nazwa", "%" +x + "%");
    if(query.exec()){
        int fieldNo = query.record().indexOf("nazwa");
        while (query.next()) {
            qDebug()<< query.value(fieldNo).toString();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2021-03-25
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多