哪种更好的过滤方法?

时间:2013-09-12 11:46:18

标签: c# asp.net sql linq gridview

我有一个包含文本框,搜索按钮和网格视图的ASP.net页面。

最初页面将加载绑定到网格的所有记录。在这里,还有另一个用户选项,他可以通过在文本框中输入id值来过滤网格记录。

因为,在页面加载时,我将网格与所有记录绑定。当用户在文本框中输入过滤条件时,我使用linq查询来过滤它。

我的网格有大约28,000条记录。

在这里,我的问题是要遵循哪种方法。一种方法是将id传递给数据库并获取结果,或者只是查询已经可用的数据集。

我正在使用LINQ方法,这似乎需要更多时间。还是只是我的错觉?

两种方法之间有什么不同吗?如果是这样有效?

请在此澄清我。我使用的LINQ查询是:

Var query = from myrow in dtItems.AsEnumerable()
                        where myrow.Field<string>("ID") ==txtID.Text
                        select myrow;

1 个答案:

答案 0 :(得分:0)

Var query = from myrow in dtItems.AsEnumerable()
                        where myrow.Field<string>("ID") ==txtID.Text
                        select myrow;

使用AsEnumerable表示已加载所有记录,并且过滤器已应用于内存集合。

如果您只是省略AsEnumerable,您应该获得一个Queryable,并在SQL中应用where,这样您只需加载匹配的行。

但是,如果您确定已经有内存中的项目,那么查询它们比调用数据库更快...您需要分析代码并查看哪种方法效果最好。