簡體   English   中英

從數據表中選擇多個列

[英]Selecting multiple columns from a DataTable

我的代碼:

 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

我收到此錯誤:

表達式中的語法錯誤。

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" });

上面的內容未經測試,只是快速回復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM