[英]Selecting multiple columns from a DataTable
我的代碼:
ProductRangesForNewRowsDt = ProductRangesDt.Select("PRODUCT_NAME, MIN_QUANTITY, MAX_QUANTITY, COMISSION_TEMPLATE where PROVIDER_ID = " + PROVIDER_ID).CopyToDataTable();
其中ProductRangesForNewRowsDt
是一個DataTable
而ProductRangesDt
是另一個包含這些列的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.