原型
void QSqlTableModel::setFilter(const QString &filter)
注意
如果模型已从数据库中填充数据,则模型将其与新滤波器重新选择。否则,将在调用下一次select()
中应用过滤器
model的select()
会在筛选和排序的条件下,将数据库中符合要求的在mode表格中显示出来
完全匹配查询
1、普通字符串查询
普通字符串,当使用参数的时候必须注意在参数前后加上单引号:
model->setFilter(QObject::tr(“dCode=’%1’”).arg(str));
2、数值查询
model->setFilter(QObject::tr(“dCount=%1”).arg(cunt));
3、时间查询
时间查询尤其在QT中的QDataTime要将其转换为字符串后进行查询,查询语法与普通字符相同。
模糊查询
1、首字模糊查询
QString filterstr=QObject::tr(“cName like ‘%1%’”).arg(arg1);
model->setFilter(filterstr);
2、任意字模糊查询
QString filterstr=QObject::tr(“cName like ‘%%1%’”).arg(arg1);
model->setFilter(filterstr);
3、两个并列条件模糊查询
QString filterstr=QObject::tr("(cName like ‘%1%’) AND (cPhone like ‘%1%’)").arg(arg1);
model->setFilter(filterstr);
```cpp
4、两个或条件模糊查询
```cpp
QString filterstr=QObject::tr("(cName like ‘%1%’) OR (cPhone like ‘%1%’)").arg(arg1);
model->setFilter(filterstr);
setSort
排序操作。按照列和Qt::SortOrder排序。Qt::SortOrder有升序和降序
void QSqlTableModel::setSort ( int column, Qt::SortOrder order )
参数:
- column
排序的列 enum Qt::SortOrder
排序规则
Qt::AscendingOrder
升序
Qt::DescendingOrder
降序
设置完排序以后,调用select()
刷新数据