C# 从更大的数据表中提取数据表的最快方法?

C# 从更大的数据表中提取数据表的最快方法?,c#,datatable,C#,Datatable,假设我在这个结构中有一个表 Id | Name | Product ------------------- 1 Name1 Product1 1 Name1 Product2 2 Name3 Product3 3 Name4 Product4 该表在返回它的sql查询中按Id排序。 现在,我想提取包含每个唯一id的指定行的DataTable。 这意味着使用上面的示例,我应该得到三个数据表,其中包含具有不同Id值的行。尝试以下操作: string expressi

假设我在这个结构中有一个表

Id | Name | Product
-------------------
1   Name1   Product1
1   Name1   Product2
2   Name3   Product3
3   Name4   Product4
该表在返回它的sql查询中按Id排序。 现在,我想提取包含每个唯一id的指定行的DataTable。 这意味着使用上面的示例,我应该得到三个数据表,其中包含具有不同Id值的行。

尝试以下操作:

string expression = "Id = yourId";
DataRow[] foundRows = originalTable.Select(expression);
试试这个:

string expression = "Id = yourId";
DataRow[] foundRows = originalTable.Select(expression);
试试这个:

string expression = "Id = yourId";
DataRow[] foundRows = originalTable.Select(expression);
试试这个:

string expression = "Id = yourId";
DataRow[] foundRows = originalTable.Select(expression);

您应该使用DataView.RowFilter()快速获取它。请参阅

您应该使用DataView.RowFilter()快速获取它。请参阅

您应该使用DataView.RowFilter()快速获取它。请参阅

您应该使用DataView.RowFilter()快速获取它。请参阅使用数据视图

var view = new System.Data.DataView(table);
view.Sort = "id";

foreach(var id in new [] {1,2,3})
{
    view.RowFilter = "id = " + id.ToString();
    var result = view.ToTable();
}
使用数据视图

var view = new System.Data.DataView(table);
view.Sort = "id";

foreach(var id in new [] {1,2,3})
{
    view.RowFilter = "id = " + id.ToString();
    var result = view.ToTable();
}
使用数据视图

var view = new System.Data.DataView(table);
view.Sort = "id";

foreach(var id in new [] {1,2,3})
{
    view.RowFilter = "id = " + id.ToString();
    var result = view.ToTable();
}
使用数据视图

var view = new System.Data.DataView(table);
view.Sort = "id";

foreach(var id in new [] {1,2,3})
{
    view.RowFilter = "id = " + id.ToString();
    var result = view.ToTable();
}

您可以尝试
linq
来实现这一点,使用
datatable
类似于以下内容的东西(绝对没有经过尝试和测试):

此示例获取第一个
产品

要获得产品的
计数
,请执行以下操作:

SELECT Id, Name, COUNT(Product)
FROM [Your_Table]
GROUP BY Id, Name

您可以尝试
linq
来实现这一点,使用
datatable
类似于以下内容的东西(绝对没有经过尝试和测试):

此示例获取第一个
产品

要获得产品的
计数
,请执行以下操作:

SELECT Id, Name, COUNT(Product)
FROM [Your_Table]
GROUP BY Id, Name

您可以尝试
linq
来实现这一点,使用
datatable
类似于以下内容的东西(绝对没有经过尝试和测试):

此示例获取第一个
产品

要获得产品的
计数
,请执行以下操作:

SELECT Id, Name, COUNT(Product)
FROM [Your_Table]
GROUP BY Id, Name

您可以尝试
linq
来实现这一点,使用
datatable
类似于以下内容的东西(绝对没有经过尝试和测试):

此示例获取第一个
产品

要获得产品的
计数
,请执行以下操作:

SELECT Id, Name, COUNT(Product)
FROM [Your_Table]
GROUP BY Id, Name

无论如何,您都需要迭代每一行。您应该尝试发送另一个SQL查询,而不是在已获取的结果中进行搜索。您的输出应该是什么样的???您想对产品做什么?第一(最小)、最后(最大)、计数?听起来您应该在SQL查询命中数据表之前执行此操作。请尝试使用公共表表达式并从服务器获取数据。除非您需要所有(未过滤的)数据,否则这将是最快的方法。无论如何,您都需要迭代每一行。您应该尝试发送另一个SQL查询,而不是在已获取的结果中进行搜索。您的输出应该是什么样的???您想对产品做什么?第一(最小)、最后(最大)、计数?听起来您应该在SQL查询命中数据表之前执行此操作。请尝试使用公共表表达式并从服务器获取数据。除非您需要所有(未过滤的)数据,否则这将是最快的方法。无论如何,您都需要迭代每一行。您应该尝试发送另一个SQL查询,而不是在已获取的结果中进行搜索。您的输出应该是什么样的???您想对产品做什么?第一(最小)、最后(最大)、计数?听起来您应该在SQL查询命中数据表之前执行此操作。请尝试使用公共表表达式并从服务器获取数据。除非您需要所有(未过滤的)数据,否则这将是最快的方法。无论如何,您都需要迭代每一行。您应该尝试发送另一个SQL查询,而不是在已获取的结果中进行搜索。您的输出应该是什么样的???您想对产品做什么?第一(最小)、最后(最大)、计数?听起来您应该在SQL查询命中数据表之前执行此操作。请尝试使用公共表表达式并从服务器获取数据。除非您需要所有(未过滤的)数据,否则这将是最快的方法。