数据表 - 可配置的查询

本文关键字:查询 配置 数据表 | 更新日期: 2023-09-27 18:31:16

我从两个不同的来源收集了数据,例如:在线资源和本地数据库。来自这些源的结果都存储在各自的System.Data.DataTable对象(平面结构)中。

我希望能够使用可以在 App.Config 中配置的联接查询来查询这些源。如何做到这一点?

DataTable dtPublicCompanyBlacklist包含以下列:

id 
name

DataTable dtMyCompanyCustomerSource包含以下列:

id 
salesTotal
e-mail

我希望能够写出类似以下内容的内容(如string):

select a.name, b.salesTotal, b.e-mail 
from dtPublicCompanyBlacklist a, dtMyCompanyCustomerSource  b 
where a.id = b.id

应用程序的用户应该能够修改查询,而无需重新编译源代码。我还没有发现Linq可以这样使用。

数据表 - 可配置的查询

请找到下面的示例。您可以使用 linq 查询来做到这一点。

var result = from dataRows1 in table1.AsEnumerable()
             join dataRows2 in table2.AsEnumerable()
             on dataRows1.Field<string>("ID") equals dataRows2.Field<string>("ID")
             select dtResult.LoadDataRow(new object[]
             {
                dataRows1.Field<string>("ID"),
                dataRows1.Field<string>("name"),
                dataRows2.Field<int>("stock")
              }, false);