2017-08-06 1 views
-1

Ich versuche, alle Zeilen zu löschen, in denen 0 oder Null in der Spalte Prüfsumme ist.Löschen basierend auf Spaltenkriterien

ich nur die Ode Arbeit machen kann, wenn ich entweder:

completeDT_memo.AsEnumerable().Where(r => r.Field<string>("dcChecksum") == "0").ToList().ForEach(row => row.Delete()); 

oder:

completeDT_memo.AsEnumerable().Where(r => r.Field<string>("dcChecksum") == null).ToList().ForEach(row => row.Delete()); 

Wenn ich versuche, sie beide Arbeit zu machen, wirft das Skript eine Ausnahme.

Können Sie sagen, beste Bucht, um dies zusammen zu arbeiten.

Dank

+0

Schreibe den Code, der die Ausnahme auslöst –

+0

Das Ergebnis der in dem ein boolean sein muss. Also, vielleicht können Sie dies versuchen: .Where (r => string.IsNullOrEmpty (r.Field ("dcChecksum")) –

+0

bitte erklären, was ist Ihre Umgebung, und fügen Sie Details über Ihren Fehler. –

Antwort

1

Ich denke, das Problem ist, dass die Ausnahme ausgelöst wird, weil Sie versuchen, gleich "0"r.Field<string>("dcChecksum") ist zu prüfen, während es null ist. Sie haben also folgende Möglichkeiten, zuerst zu prüfen, ob r.Field<string>("dcChecksum")null ist.

completeDT_memo.AsEnumerable().Where(r => string.IsNullOrEmpty(r.Field<string>("dcChecksum"))).ToList().ForEach(row => row.Delete()); 

oder

completeDT_memo.AsEnumerable().Where(r => (r.Field<string>("dcChecksum") == null) ? true : r.Field<string>("dcChecksum") == "0").ToList().ForEach(row => row.Delete()); 
+1

Ihr zweiter Code hier sieht vor Ort Ich werde es versuchen :), ich werde dich wissen lassen, wie ich gehe. Vielen Dank – Infost

Verwandte Themen