使用setfilter实现查询

setfilter在许多的IDE中都已经支持了,QT也不例外。在操作数据库中QSqlQueryModle,QSqlTableModle都对齐进行了支持。那么我们可以用它来实现过滤查询。
一、完全匹配查询
1、普通字符串查询
普通字符串,当使用参数的时候必须注意在参数前后加上单引号:
tmodel->setFilter(QObject::tr(“dCode=’%1’”).arg(str));

2、数值查询
tmodel->setFilter(QObject::tr(“dCount=%1”).arg(cunt));

3、时间查询
时间查询尤其在QT中的QDataTime要将其转换为字符串后进行查询,查询语法与普通字符相同。

二、模糊查询
1、首字模糊查询
QString filterstr=QObject::tr(“cName like ‘%1%’”).arg(arg1);
tmodel->setFilter(filterstr);

2、任意字模糊查询
QString filterstr=QObject::tr(“cName like ‘%%1%’”).arg(arg1);
tmodel->setFilter(filterstr);

3、两个并列条件模糊查询
QString filterstr=QObject::tr("(cName like ‘%1%’) AND (cPhone like ‘%1%’)").arg(arg1);
tmodel->setFilter(filterstr);

4、两个或条件模糊查询
QString filterstr=QObject::tr("(cName like ‘%1%’) OR (cPhone like ‘%1%’)").arg(arg1);
tmodel->setFilter(filterstr);

发布了116 篇原创文章 · 获赞 79 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/haigear/article/details/102649230