salut comment je peux filtrer un datatable avec linq to datatable? J'ai une DropDownList et je peux y sélectionner la valeur de la colonne Modul Maintenant, je veux filtrer le DataTable avec cette colonne Modul.
voici ma structure datatable:
User | Host | TimeDiff | License | Telefon | Modul
Voici le code:
protected void drp_Modules_SelectedIndexChanged(object sender, EventArgs e)
{
string value = drp_Modules.SelectedValue;
DataTable tb = (DataTable)Session["dt_Users"];
tb = from item in tb //?????
LoadUsertable(tb);
}
Il vaut mieux utiliser DataTable.Select
, mais si vous devez utiliser LINQ, vous pouvez essayer:
DataTable selectedTable = tb.AsEnumerable()
.Where(r => r.Field<string>("Modul") == value)
.CopyToDataTable();
Cela créerait une nouvelle DataTable
basée sur des valeurs filtrées.
Si vous utilisez DataTable.Select
string expression = "Modul =" + value;
DataRow[] selectedRows = tb.Select(expression);
Vous pouvez utiliser la condition pour vérifier les lignes existantes en plus avant la diffusion. L'espace de noms System.Linq est requis pour que Any () fonctionne
var rows = values.AsEnumerable().Where
(row => row.Field<string>("Status") == action);
if(rows.Any()){
DataTable dt = rows.CopyToDataTable<DataRow>();
}