根据动态查询从数据表中选择计数

时间:2013-08-26 07:38:49

标签: c# sql datatable

我在内存中有一个数据集,里面有两个数据表。

其次我有单独的数据表(在内存中),其中我有以下格式的行。

假设它有两行。实际上它可能有数百万行

ID    TableName    ColumnName    Operator    value 
1       Const        ID            =           1  
2       Ins         app_ID         =         558877 

按原样:现在我从给定的行获取信息并构造查询并在数据库服务器中执行它,如:

Select count(*) from Cont.Id= 1 and Ins.app_id = 558877;

在上述查询结果的基础上,我实现了我的业务逻辑。

目标:为了提高性能,我想在应用服务器中执行查询,因为现在我在内存中有完整的表。我该怎么做。

注意:表名可能因数据而异。

3 个答案:

答案 0 :(得分:0)

你真的想在内存中保留数百万行的表吗?

在计算内存表方面,它是如何保留的?如果它是您的标记的数据表,则可以使用DataTable.Rows.Count属性。

如果你的表名不知道,你可以遍历DataSet.Tables中的表并在每个表上调用Rows.Count。

答案 1 :(得分:0)

您必须在app_ID字段上创建索引。在那之后,你的计数将以良好的表现运行。

答案 2 :(得分:0)

您的查询引用了未定义的别名“Ins”。您必须在FROM / JOIN子句中指定另一个表,并将“count()”更改为“count(Cont。)”