Comment je peux filtrer une Datatable?
- Je utiliser une Table de données avec des Informations sur les Utilisateurs et je veux rechercher un utilisateur ou une liste d'utilisateurs dans ce DataTable. Je l'ai essayer butit ne fonctionnent pas 🙁
Voici mon code c#:
public DataTable GetEntriesBySearch(string username,string location,DataTable table)
{
list = null;
list = table;
string expression;
string sortOrder;
expression = "Nachname = 'test'";
sortOrder = "nachname DESC";
DataRow[] rows = list.Select(expression, sortOrder);
list = null; //for testing
list = new DataTable(); //for testing
foreach (DataRow row in rows)
{
list.ImportRow(row);
}
return list;
}
- c'est le code de travail ou avez-vous des erreurs?
- Pouvez-vous expliquer exactement ce qui ne fonctionne pas? Ne vous obtenez une exception ou obtenez-vous 0 résultats (2 choses différentes)?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser DataView.
http://www.csharp-examples.net/dataview-rowfilter/
Si vous utilisez au moins .NET 3.5, je suggère d'utiliser
Linq-To-DataTable
au lieu de cela, car il est beaucoup plus lisible et puissant:Code ci-dessus est juste un exemple, en fait, vous avez beaucoup plus de méthodes disponibles.
N'oubliez pas d'ajouter
using System.Linq;
et pour leAsEnumerable
extension de la méthode d'une référence à laSystem.Data.DataSetExtensions
dll (Comment).DataTable
le garder. Sinon, je préfère uneList<CustomClass>
parce que vous n'avez pas de boxing/unboxing. UnDataTable
utiliseSystem.Object
pour tout ce qui vous permet de toujours avoir à jeter. Ayant une classe personnalisée avec significative des propriétés a également de nombreux autres avantages en dehors de la lisibilité.clair:
utilisation:
exemple:
Pour quelqu'un qui travail dans VB.NET (au cas où)
Il est préférable d'utiliser DataView pour cette tâche.
Exemple de l'utilisation de ce que vous pouvez trouver dans ce post: Comment filtrer les données dans dataview
Parfois, vous voulez vraiment rendre un
DataTable
qu'unDataView
. Ainsi, unDataView
n'était pas bon dans mon cas, et je suppose que peu d'autres voudraient que trop. Voici ce que j'ai utilisé pour faireCe filtre
myDataTable
qui est un DataTable et de retour d'un nouveauDataTable
Espère que quelqu'un va trouver qui est utile
Salut, nous pouvons utiliser la Méthode ToLower parfois, il n'est pas de filtre.