wake-up-neo.net

Wie kann ich eine Datentabelle mit Linq nach Datentabelle filtern

hi wie kann ich eine datable mit linq zu datatable filtern? Ich habe eine DropDownList und kann dort den Wert der Modul-Spalte auswählen. Jetzt möchte ich die DataTable mit dieser Modul-Spalte filtern. 

hier ist meine datierbare Struktur: 

User | Host | TimeDiff | License | Telefon | Modul 

Hier der 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

Sie sollten die DataTable.Select -Methode verwenden, aber wenn Sie LINQ verwenden müssen, können Sie Folgendes versuchen:

DataTable selectedTable = tb.AsEnumerable()
                            .Where(r => r.Field<string>("Modul") == value)
                            .CopyToDataTable();

Dies würde eine neue DataTable basierend auf gefilterten Werten erstellen. 

Wenn Sie DataTable.Select verwenden

string expression = "Modul =" + value;
DataRow[] selectedRows = tb.Select(expression);
36
Habib

Mit condition können Sie vor dem Casting prüfen, ob Zeilen vorhanden sind. Der System.Linq-Namespace ist für Any () erforderlich

var rows = values.AsEnumerable().Where
            (row => row.Field<string>("Status") == action);

if(rows.Any()){
    DataTable dt = rows.CopyToDataTable<DataRow>();
 }
1