这将是组织过滤器逻辑的最佳方式

时间:2012-03-02 07:34:17

标签: c# sql filter

我想重构一个逻辑来过滤我的应用程序的网格。我想仅在数据库中实现此逻辑。

所以,我有一个网格,显示来自DB的更多表格中的数据。有一些textBoxescomboBoxes,用于设置所需的每个过滤器的数据。

现在,数据库中的巨大的存储过程以这种方式运行:

最初从表中选择 [ALL DATA] 到临时表中, 之后, 根据填充数据的字段(来自应用程序过滤器),它从 [ALL DATA] 中删除 NOT LIKE SELECTED FILTER

的信息

依赖于在过滤器中设置的foreach参数。

这种方式消耗了很多时间,因为最初会选择所有数据,然后慢慢删除那些不需要的数据。

我不想在客户端创建SQL查询。我想只对数据库这样做,或者......我不知道......

这将是一种最佳方式,非常优化,可以快速运行并尽可能在短时间内返回结果?

我在客户端使用C#和.NET 4.0,以及MSSQL DB。

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

这就是ORM的用途。不要在客户端构建动态SQL语句。而是通过过滤器构建LINQ查询过滤器。您将获得完全动态的好处,而不会有SQL注入的风险。

您可以查看this作为示例。

答案 1 :(得分:1)

修改您的存储过程,使其仅首先在temprorary表中选择所需的数据,而不是选择所有内容,然后删除不需要的内容。