的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" });
,它只是一個快速射擊答覆。
您可以使用LINQ爲此.. – 2013-04-25 10:10:14
可以給我一個例子嗎? – Sora 2013-04-25 10:12:14
@Sora請提供更詳細的代碼... – Virus 2013-04-25 10:13:54