1

我正在使用查询从名为 customers 的表中获取记录,并且我想按address, housenumber, surname, name.

首先我使用了这个(DataTable)

public CustomerInfo.customers GetCustomers(string zipcode) {
     string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode order by address, housenumber, surname, name";
 ....     
}

现在我用这个:

public OrderedEnumerableRowCollection<CustomerInfo.customerRow> GetCustomers(string zipcode) {
     string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode";

     ....

     return (from c in datatable).OrderBy(c => c.Address).ThenBy(....).ThenBy(...);       
}

这是提高性能的正确方法......?

OrderedEnumerableRowCollectionvs的(缺点)优点是DataTable什么?

请让我知道你应该怎么做。

4

1 回答 1

0

我会说这取决于您的 SQL Server 上的索引,哪个更快。例如,如果 SQL Server 被索引以便它可以快速进行排序(或数据非常小),那么数据表就可以了。

我通常希望 SQL 服务器在这方面比 .NET 代码更有效。

不过,在一般架构上。如果排序是 UI 问题(从您的问题中不清楚是否是),那么排序客户端更有意义,特别是如果您将在其他地方使用数据表(可能以不同的顺序)。

于 2011-07-15T11:20:11.157 回答