asp.net中通过数据源控件进行动态条件组合查询的问题
多条件组合查询的问题是,某条件可能有,也可能没有,这样sql的条件语句就不是固定的,随着查询条件的变化而变化,
而数据源控件SqlDatasource尽管可以执行参数化的查询,却不能对查询条件进行动态组合,要想进行动态查询,就必须
组合查询语句,动态对SqlDatasource的查询语句赋值,这有两种方式:
一种是,组合select查询的条件语句,直接给SqlDatasource的selectCommand属性赋值。
一种是,组合条件语句,赋值给SqlDataSource的filterExpression属性,利用SqlDatasource的筛选功能来进行动态条件查询。
在page_load事件里,对SqlDatasource进行上述两种sql语句动态赋值后,第一种情况可以正常取得结果,而第二种则无效,
而在设计状态下,通过属性窗口对filterExpression赋值,也可以取得正常的筛选结果。
请问为什么?怎么才能使手工编码对filterExpression的赋值生效呢?
除了上述两种方法外,在asp.net里进行动态条件组合查询,有其他“最佳实践”的方法吗?
或者不使用数据源控件,而自己手工编码控制数据的查询和数据绑定,这样可能更好点?
--------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 根据输入条件生成where条件不就行了吗 --------------------编程问答-------------------- 谢谢回帖,不过请仔细看我的帖子的描述,我问的是为什么生成的条件语句,对FilterExpression属性赋值后不生效。 --------------------编程问答-------------------- 纳闷,刚发现对selectCommand属性的赋值也不生效了,而以前是毫无问题的。 --------------------编程问答-------------------- 对动态查询组合的问题,我是在SQL语句里这样写
AND (:ABD IS NULL OR TABLE1.ABC = :ABC) --------------------编程问答-------------------- 你可以使用ObjectDataSoucr数据源控件 ,编写一个业务类,在该类中编写一个ObjectDataSouce调用的方法,分析参数变化时 数据源的sql语句可以实现 这个应该会比sqlDataSource数据源控件要好一些 --------------------编程问答-------------------- 这种复杂的就自己用代码组成DataTable等数据源
或者用ObjectDataSoucr数据源控件也可以
补充:.NET技术 , ASP.NET