Filter等于DataGridView中的元素

时间:2017-07-26 06:48:06

标签: c# datagridview

我应该只带一些东西。

excel文件架构如下

<ConfigRegolatori>
<Id>6</Id>
<Address>92</Address>
<Category>90</Category>
<Mode>TC_K</Mode>
<Model>Z4TC</Model>
<Name>KT6</Name>

<ConfigRegolatori>
<Id>7</Id>
<Address>7</Address>
<Category>100</Category>
<Mode>TC_K</Mode>
<Model>M9_Servo</Model>
<Name>KT7</Name>

<ConfigRegolatori>
<Id>8</Id>
<Address>92</Address>
<Category>90</Category>
<Mode>TC_K</Mode>
<Model>Z4TC</Model>
<Name>KT10</Name>

代码部分如下

dtConfReg = new DataTable();
dtConfReg.ReadXml(Principale.strPathConfig + "\\ConfigRegulators.xml");
dtConfReg.TableName = "ConfigReg";

bsouReg = new BindingSource();
bsouReg.DataSource = dtConfReg;
dgvwConfigReg.DataSource = bsouReg;

由于我在Address字段中有多个具有相同值的行,因此我想为每个值获取一行。例如,我有多个记录,地址标记为92,我只想提取一个。

PS:一个重要的信息是我正在使用框架2.0

由于

1 个答案:

答案 0 :(得分:0)

您可以使用DefaultView的{​​{1}}属性。

DataTable

完整的解决方案是:

dtConfReg.DefaultView.RowFilter = "Address = '92'";

请注意,过滤器使用单引号作为值,如果从XML反序列化的值为int,则不要使用它们。

<强>更新

我已将代码更改为按该地址过滤。如果要按某些列值过滤数据,此解决方案有效。

如果您想从该XML获取不同的值,那么我建议您首先从XML获取值,然后使用现有代码将数据表绑定到UI控件。