Unable to cast object of type 'System.Dezimal' zum Typ 'System.String'
Ich schrieb diesen code zu finden, welche von dtExistCosts bedeutet,y Ausfahrt in costsList.
var costMustbeDeleteDt = (
from e in dtExistCosts.AsEnumerable()
where !(from c in costsList
select Convert.ToString(c.CostRecordId))
.Contains(e.Field<string>("DETAIL_HAZ_PK"))
select e).CopyToDataTable();
aber wenn ich es laufen lasse bekomme ich die Fehlermeldung:
Unable to cast object of type
System.Decimal
zu gebenSystem.String
in
!(from c in costsList
select Convert.ToString(c.CostRecordId))
.Contains(e.Field<string>("DETAIL_HAZ_PK"))
warum?
Welche Art ist
Es ist der name der Spalte, die ich überprüfen möchten.
Toll, und was type ist es?
DETAIL_HAZ_PK
?Es ist der name der Spalte, die ich überprüfen möchten.
Toll, und was type ist es?
InformationsquelleAutor user3702192 | 2015-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausnahme sein sollte, in dieser Zeile können Sie die explizite Umwandlung von einem decimal-string als Ausnahme vorgeschlagen.
Können Sie tun:
Natürlich, vergleichen Sie die Werte direkt dezimal der Fall sein sollte, aber diese Antwort Ihre Frage auf warum.
InformationsquelleAutor Eric
Es sieht aus wie Sie versuchen zu konvertieren zwei numerische Werte (c.CostRecordId und der Wert von "DETAIL_HAZ_PK") zu einem string vor und vergleicht Sie, das ist nicht nur unnötig, sondern führt zu der Fehlermeldung, die Sie beschrieben.
Versuchen Sie dies:
Zusätzlich würde ich vorschlagen, verbessern Sie die Lesbarkeit Ihrer Auswahl durch die Einführung einer Variablen für die costList IDs und konvertieren von LINQ-Abfragen die Methode, die Kette syntax:
InformationsquelleAutor Thomas F.