0

さて、質問は漠然とあなたに来るかもしれないので、私は可能な限り説明しようとします。

たとえば、。というデータテーブルに10列と5000行がありますtblNpc

そのため、作業中にこのテーブルで多くのフィルタリングを行います。私はここでこのアプローチを使用していますが、それを処理するための最良の方法ですか?

ここに小さな例があります

    string srQuery = "select * from tblNpc";
    DataSet dsNPC = DbConnection.db_Select_Query(srQuery);

    DataView dvNPC = new DataView(dsNPC.Tables[0]);

    dvNPC.RowFilter = "npcId=32";
    string srExampleData = dvNPC[0]["npcName"].ToString();

C#4.0、SQL Server 2008 R2

重要:テーブル全体を使用し、テーブル全体の行数に等しいフィルタリングを行います

4

1 に答える 1

2

@Andormar'sコメントによると、そもそも仕事をするように設計されているあなたがhand over the filtering job to the SQL Serverbring over only what you needed.

コードビハインドでDataTableを操作する必要がある場合は、LINQ would be quicker I think。さらに、RowFilterではなくLINQを使用してDataTableで複雑なクエリを実行できます。

たとえば、クエリは次のように実行できます。

var results = (from r in dsNPC.Tables[0].AsEnumerable()
               where r.Field<int>("npcId")) ==32
               select new { npcName = r.Field<string>("npcName")})
              .FirstOrDefault();
于 2012-12-08T18:29:15.727 に答える