2015-01-05 9 views
5

Ich bekomme den Fehler in der inneren foreach während Select in datatable.Min (5) muss kleiner oder gleich max (-1) in einem Range-Objekt sein?

ist hier der Code, den ich

bisher versucht
foreach (DataRow drOuter in dtLogic.Select("Name='>' OR Name='='")) 
{ 
    foreach (DataRow drInner in dtLogic.Select("ParentId=" + Convert.ToInt64(drOuter["Id"]) + "")) 
    { 

    } 
} 

wo Convert.ToInt64(drOuter["Id"])2107362180 den Wert haben, wenn ich in Immediate Window geprüft.
Warum wirft es dann den unteren Fehler?

enter image description here

Antwort

11

Sie für Streicher überprüfen sollten, und nicht für die Zahlen so einfache Anführungszeichen in Abfrage expr='string'

foreach (DataRow drInner in dtLogic.Select("ParentId='" + Convert.ToInt64(drOuter["Id"]) + "'")) 
{ 

} 

nach dieser bearbeiten einfügen können Sie als @Christos Antwort ersetzen, sagt

Convert.ToInt64(drOuter["Id"]) 

mit

drOuter["Id"].ToString() 
+0

Ja. Ich hatte einzelne Zitate in datatable.Select() verpasst. Da die Spalte nur int-Werte enthält, funktioniert immer noch Convert.ToInt64 (drOuter ["Id"]). Vielen Dank @faby –

+0

Ok, es funktioniert, aber können Sie erklären, warum? –

Verwandte Themen