QString在sqlite中选择
问题描述:
我想搜索名为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()的子查询。
答
一个简单的选择是使用.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();
}
}
为什么downvote ??? – eyllanesc
它的工作非常感谢你! –