2017-10-28 81 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

它的工作非常感謝你! –