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