Ich kann nicht verstehen, warum „das angegebene Ziel ungültig Ausnahme ist“ hier geworfen wird:‚angegebene Umwandlung ist ungültig‘ in LAMBDA Ausdruck, wenn Schwimmer Abfrage Feld
C# -Code:
die Ausnahme auslöst, wenn es um m.HadapGoalPercent
Eigenschaft erreicht, i tryed den Datentyp x => x.Field<float>("HadapGoalPercent")
auch Einzel- und Doppel zu ändern, aber es funktioniert nicht
for (int i = 0; i < dt.Rows.Count; i++)
{
Sales.Month m = new Sales.Month(Yearnum, (byte)(i+1));
m.HadapGoal = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<int>("HadapGoalIncome")).Single();
m.ShotefGoal = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<int>("ShotefGoalIncome")).Single();
m.HadapGoalPercent = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<float>("HadapGoalPercent")).SingleOrDefault();
m.ShotefGoalPercent = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<float>("ShotefGoalPercent")).SingleOrDefault();
months.Add(m);
}
das ist die Definitionen vonShotefGoalPercent
und HadapGoalPercent
Eigenschaften innerhalb Month Klasse:
public Single ShotefGoalPercent { get; set; }
public Single HadapGoalPercent { get; set; }
das ist dt Table:
(HadapGoalPercent und ShotefGoalPercent sind als Dezimalzahl definiert (5,4) in der SQL-Datenbank)
vielen Dank für Ihre Zeit
Haben Sie versucht, zu dezimieren Casting? Schließlich haben Sie gesagt, dass es in der DB als Dezimalzahl gespeichert ist. – sr28
Werfen Sie einen Blick auf 'dt.Columns [" HadapGoalPercent "]. DataType' Eigenschaft. Es sollte Ihnen sagen, welche Besetzung Sie verwenden müssen. –
ok ... dank @ sr28 wurde das Problem gelöst ich habe HadapGoalPercent, ShoefGoalPercent von single auf dezimal und das datatape in query auf dezimal geändert ... es funktioniert auch. Hier ist ein Thread, den ich jetzt über den Unterschied zwischen dezimal, float, single und double gefunden habe: http://stackoverflow.com/questions/618535/difference-between-decimal-float-and-double-in-net. warum schreibst du es nicht als Antwort? - Danke noch einmal – jonathana