gpt4 book ai didi

c# - 从 DataTable 中选择多列

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:33 25 4
gpt4 key购买 nike

我的代码:

 ProductRangesForNewRowsDt = ProductRangesDt.Select("PRODUCT_NAME, MIN_QUANTITY, MAX_QUANTITY, COMISSION_TEMPLATE where PROVIDER_ID = " + PROVIDER_ID).CopyToDataTable();

其中 ProductRangesForNewRowsDt 是一个 DataTableProductRangesDt 是另一个包含这些列的 DataTable:

PRODUCT_ID
PRODUCT_NAME
PROVIDER_ID.PROVIDER_NAME
MIN_QUANTITY
MAX_QUANTITY
COMISSION_TEMPLATE

我收到这个错误:

Syntax error in the expression.

最佳答案

DataTable.Select 返回一个 DataRow 数组,因此如果您的列存在于您的 DataTable 中,那么您将返回所有列反正那一行。 .Select 将与 WHERE 子句一起使用,因此您可以执行如下操作:

DataRow[] rows = ProductRangesDt.Select("PROVIDER_ID = " + PROVIDER_ID);

然后使用您喜欢的任何方法将这些行放入您的目标数据表中。

为了只得到你想要的列,那么你应该从数据表中派生一个DataView,将其复制到另一个数据表中并查询这个新集合。

DataView view = new DataView(ProductRangesDt);
DataTable dtQueryTable = view.ToTable(false, new string[] { "PROVIDER_ID", "PRODUCT_NAME", "MIN_QUANTITY", "MAX_QUANTITY", "COMISSION_TEMPLATE" });

DataRow[] rows = dtQueryTable.Select("PROVIDER_ID = " + PROVIDER_ID);

刚刚重新阅读了这篇文章,你也可以用另一种方式来做。查询您拥有的内容,为您的新筛选集创建一个数据表,然后使用 DataView 提取您想要的列。

编辑

您想要的列,请尝试其他方式

DataTable dtFiltered = ProductRangesDt.Select("PROVIDER_ID = " + PROVIDER_ID).CopyToDataTable();

DataView view = new DataView(dtFiltered);
DataTable dtSpecificCols = view.ToTable(false, new string[] { "PRODUCT_NAME", "MIN_QUANTITY", "MAX_QUANTITY", "COMISSION_TEMPLATE" });

以上内容未经测试,只是快速回复。

关于c# - 从 DataTable 中选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16211988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com