C# 如何过滤数据集中的数据行?
我有一个C# 如何过滤数据集中的数据行?,c#,vb.net,C#,Vb.net,我有一个 <DATASET> <SALES_DO_INDEPENDENT> <SALES_DO_INDEPENDENT_ID>22</SALES_DO_INDEPENDENT_ID> <DO_CODE>1234</DO_CODE> <SALES_DO_STATUS_ID>1</SALES_DO_STATUS_ID> <COM
<DATASET>
<SALES_DO_INDEPENDENT>
<SALES_DO_INDEPENDENT_ID>22</SALES_DO_INDEPENDENT_ID>
<DO_CODE>1234</DO_CODE>
<SALES_DO_STATUS_ID>1</SALES_DO_STATUS_ID>
<COM_CUSTOMER_ID>1</COM_CUSTOMER_ID>
<COM_PRODUCT_ID>9</COM_PRODUCT_ID>
<COM_TRANSPORT_COMPANY_ID>8</COM_TRANSPORT_COMPANY_ID>
<SHIPPING_DATE>28/07/2011 0:00:00</SHIPPING_DATE>
<SHIPPING_ADDRESS>SS</SHIPPING_ADDRESS>
<DO_DESCR>SS</DO_DESCR>
<TRANSPORT_LICENSE_CODE>123</TRANSPORT_LICENSE_CODE>
<COM_USER_ID>1</COM_USER_ID>
<IS_SYNCHRONIZED>False</IS_SYNCHRONIZED>
<IS_SAMPLE>False</IS_SAMPLE>
<COM_WAREHOUSE_ID>3</COM_WAREHOUSE_ID>
</SALES_DO_INDEPENDENT>
<SALES_DO_INDEPENDENT>
<SALES_DO_INDEPENDENT_ID>11</SALES_DO_INDEPENDENT_ID>
<DO_CODE>1234</DO_CODE>
<SALES_DO_STATUS_ID>1</SALES_DO_STATUS_ID>
<COM_CUSTOMER_ID>1</COM_CUSTOMER_ID>
<COM_PRODUCT_ID>9</COM_PRODUCT_ID>
<COM_TRANSPORT_COMPANY_ID>8</COM_TRANSPORT_COMPANY_ID>
<SHIPPING_DATE>28/07/2011 0:00:00</SHIPPING_DATE>
<SHIPPING_ADDRESS>SS</SHIPPING_ADDRESS>
<DO_DESCR>SS</DO_DESCR>
<TRANSPORT_LICENSE_CODE>123</TRANSPORT_LICENSE_CODE>
<COM_USER_ID>1</COM_USER_ID>
<IS_SYNCHRONIZED>False</IS_SYNCHRONIZED>
<IS_SAMPLE>False</IS_SAMPLE>
<COM_WAREHOUSE_ID>3</COM_WAREHOUSE_ID>
</SALES_DO_INDEPENDENT>
</DATASET>
22
1234
1.
1.
9
8.
28/07/2011 0:00:00
党卫军
党卫军
123
1.
假的
假的
3.
11
1234
1.
1.
9
8.
28/07/2011 0:00:00
党卫军
党卫军
123
1.
假的
假的
3.
如何在SALES\u DO\u INDEPENDENT\u ID=11的数据集中获取数据行
我是说结果
<DATASET>
<SALES_DO_INDEPENDENT>
<SALES_DO_INDEPENDENT_ID>11</SALES_DO_INDEPENDENT_ID>
<DO_CODE>1234</DO_CODE>
<SALES_DO_STATUS_ID>1</SALES_DO_STATUS_ID>
<COM_CUSTOMER_ID>1</COM_CUSTOMER_ID>
<COM_PRODUCT_ID>9</COM_PRODUCT_ID>
<COM_TRANSPORT_COMPANY_ID>8</COM_TRANSPORT_COMPANY_ID>
<SHIPPING_DATE>28/07/2011 0:00:00</SHIPPING_DATE>
<SHIPPING_ADDRESS>SS</SHIPPING_ADDRESS>
<DO_DESCR>SS</DO_DESCR>
<TRANSPORT_LICENSE_CODE>123</TRANSPORT_LICENSE_CODE>
<COM_USER_ID>1</COM_USER_ID>
<IS_SYNCHRONIZED>False</IS_SYNCHRONIZED>
<IS_SAMPLE>False</IS_SAMPLE>
<COM_WAREHOUSE_ID>3</COM_WAREHOUSE_ID>
</SALES_DO_INDEPENDENT>
</DATASET>
11
1234
1.
1.
9
8.
28/07/2011 0:00:00
党卫军
党卫军
123
1.
假的
假的
3.
提前谢谢
问候,,
尤桑·苏珊迪 试试这个:
Dim selectedRows As DataRow() = yourDataSet.Tables(0).Select("SALES_DO_INDEPENDENT_ID = 11")
注意,
Select
方法针对的是DataTable,而不是DataSet。此示例假定每个旧ADO.NET都有一个普通的DataSet/DataTable。您也可以使用XPath。一种方式是通过:
另一种方法是使用:
您可以从datatable和筛选器中创建一个:
Dim dv As New DataView(dt)
dv.RowFilter = "SALES_DO_INDEPENDENT_ID = 11"
For r As Integer = 0 To dv.Count - 1
Debug.WriteLine(dv(r).Item("DO_CODE").ToString) 'etc
Next
我觉得这有点奇怪,因为通常数据集中有表,表中有行。这是一个普通的ADO.NET数据集还是您自己的混合物?
root.SelectSingleNode("/DATASET/SALES_DO_INDEPENDENT[SALES_DO_INDEPENDENT_ID=11]");
Dim dv As New DataView(dt)
dv.RowFilter = "SALES_DO_INDEPENDENT_ID = 11"
For r As Integer = 0 To dv.Count - 1
Debug.WriteLine(dv(r).Item("DO_CODE").ToString) 'etc
Next