Ich habe eine Standard-Datentabelle beim Laden der Seite, weiter, wenn ich die Dropdown-Auswahl auf meiner Seite ändern Ich möchte die vorhandene Datentabelle mit den ausgewählten Dropdown-Werte durchlaufen.Linq Abfrage mit .Contains keine Datensätze zurückgeben
Da meine Dropdown-Menüs Mehrfachauswahl-Dropdown-Menüs sind, besteht eine gute Möglichkeit, mehrere Werte zu senden, um die Datentabelle zu wiederholen.
Für dieses Szenario habe ich die Linq Qery auf der Standard-Datentabelle verwendet. So:
var zones = from myRow in ds.Tables[1].AsEnumerable()
where myRow.Field<string>("BusinessUnitId").Contains(BUIds)
select myRow;
dt = zones.CopyToDataTable<DataRow>();
Es funktioniert perfekt für einzelnen Wert des Dropdown. Wenn jedoch mehrere IDs übergeben werden, gibt die Abfrage keine Zeilen zurück.
Hinweis: BUIds ist ein String-Variable (Beispiel: "1,2").
Kann mir jemand sagen, was ich in meinem Code bin fehle?
Was genau BUIds in Ihrem Fall ist? Könnten Sie bitte ein detaillierteres Beispiel für die Daten geben, auf denen Sie testen? –
String.Contains wird als wahr ausgewertet, wenn die Zeichenfolge genau die angegebene Teilzeichenfolge enthält (keine der einzelnen Zahlen aus BUIDs), in Ihrem Beispiel "0,1,2,3". Enthält ("1,2") ist gleich wahr , aber "0,2,1,3" .Contains ("1,2") ist gleich falsch. –