Filtrer efficacement le DataTable dans DataSet sans modifier la source de données
Présentation
En fonction de la source de données, il existe de nombreuses méthodes de filtrage des données DataGridView. Toutefois, le filtrage d'un DataTable dans un DataSet présente des défis uniques lors de l'utilisation de la propriété DataGridView.DataSource. Cet article explore des solutions à ce problème qui permettent le filtrage sans modifier la source de données.
Aperçu du problème
La liaison d'un DataTable directement à un DataGridView (Exemple 1) permet le filtrage à l'aide de la propriété DataTable.DefaultView.RowFilter. Cependant, la même méthode de filtrage ne met pas à jour le DataGridView lors de la liaison d'un DataTable à partir d'un DataSet (exemple 3). En effet, la propriété DataGridView.DataSource est définie sur un DataSet, et non sur le DataTable sous-jacent.
Solution : Conserver la source de données
Afin de filtrer le DataTable dans le DataSet sans changer la source de données, nous pouvons utiliser la méthode suivante :
<code class="language-csharp">DataTable table = (DataTable)dataGridView1.DataSource;</code>
<code class="language-csharp">table.DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);</code>
Explication
En accédant au DataTable à partir de la propriété DataMember, nous pouvons filtrer le DataTable sous-jacent sans modifier le DataGridView.DataSource. Cela préserve la source de données et permet d'effectuer d'autres opérations sur le DataSet selon les besoins.
Conclusion
Le filtrage des objets DataTable dans un DataSet pour un DataGridView nécessite une approche différente de celle lorsque le DataTable est lié directement à la grille. En exploitant la propriété DataMember et en appliquant le filtre au DataTable sous-jacent, nous pouvons filtrer efficacement les données sans affecter l'intégrité de la source de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!