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. 最重要的是,您可以使用 LINQ 而不是 RowFilter 对 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 回答