2017-10-28 50 views
0

我想搜索名为x的字符串。QString在sqlite中选择

QString x=abc->text(); 

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

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

回答

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(); 
    } 
} 
+0

为什么downvote ??? – eyllanesc

+0

它的工作非常感谢你! –