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 に答える