web-dev-qa-db-fra.com

Comment puis-je filtrer un dataTable avec Linq en datatable?

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);
}
15
Tarasov

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);
36
Habib

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>();
 }
1
Nayas Subramanian