public void Test()
{
SqlFilterBuilder<ContractColumn> filter = new SqlFilterBuilder<ContractColumn>(); //test SqlFilterBuilder
//ParameterizedSqlFilterBuilder<ContractColumn> filter = new ParameterizedSqlFilterBuilder<ContractColumn>(); //test ParameterizedSqlFilterBuilder
filter.Junction = SqlUtil.AND;
filter.Append(ContractColumn.FContractPerson, "Jack , Ban , Tom"); //or jack or ban or tom
filter.Append(ContractColumn.FName, "*-02-01"); // like
filter.AppendIsNotNull(ContractColumn.FName); //is not null
filter.BeginGroup(SqlUtil.AND); //开始一个分组
filter.Junction = String.Empty; //"("后面没有and
filter.AppendIn(ContractColumn.FHouseId, "1,2,3,4"); //in
filter.Junction = SqlUtil.OR;
string begindate = new DateTime(2005, 1, 1).ToString();
string enddate = DateTime.Now.ToString();
filter.AppendRange(ContractColumn.FDate, begindate, enddate); //范围
filter.EndGroup(); //结束分组
string result = filter.ToString(); //test1
//SqlFilterParameterCollection result = filter.GetParameters(); //test2
}
SqlFilterBuilder:
(fContractPerson
=
'
Jack
'
OR
fContractPerson
=
'
Ban
'
OR
fContractPerson
=
'
Tom
'
)
AND
(fName
LIKE
'
%-02-01
'
)
AND
(fName
IS
NOT
NULL
)
AND
( (fHouseID
IN
(
'
1
'
,
'
2
'
,
'
3
'
,
'
4
'
))
OR
(fDate
>=
'
2005-1-1 0:00:00
'
AND
fDate
<=
'
2007-7-10 13:39:06
'
) )
SqlFilterParameterBuilder:
(fContractPerson
=
@Param0
OR
fContractPerson
=
@Param1
OR
fContractPerson
=
@Param2
)
AND
(fName
LIKE
@Param3
)
AND
(fName
IS
NOT
NULL
)
AND
((fHouseID
IN
(
@Param4
,
@Param5
,
@Param6
,
@Param7
))
OR
(fDate
>=
@Param8
AND
fDate
<=
@Param9
))
这篇博客介绍了如何使用NetTiers中的SqlFilterBuilder类进行查询操作,包括设置条件连接符、添加不同类型的查询条件(如OR、LIKE、IS NOT NULL、IN和范围查询),以及分组和参数化查询。示例代码演示了如何构造复杂的SQL过滤表达式。

被折叠的 条评论
为什么被折叠?



