Hallo,
ich bin gerade etwas am Verzweifeln ...
Nachdem ich gelesen habe, dass man Geldbeträge aufgrund der Rundungsfehler als Decimal deklarieren soll, hab ich nun an einigen Tabellen von Double auf Decimal umgestellt.
Wenn ich nun das Programm aufrufe und einen Datensatz abrufen möchte, erhalte ich obige Fehlermeldung
Muss ich nun meine ganzen Tabellen wieder auf Double ändern??
Hier mal die Abfrage. Alle Felder, die auch in der Datenbank Decimal sind, habe ich nochmals extra versucht zu casten - leider ohne Erfolg
Oder liegt der Fehler an .ToDataTable()
ich bin gerade etwas am Verzweifeln ...
Nachdem ich gelesen habe, dass man Geldbeträge aufgrund der Rundungsfehler als Decimal deklarieren soll, hab ich nun an einigen Tabellen von Double auf Decimal umgestellt.
Wenn ich nun das Programm aufrufe und einen Datensatz abrufen möchte, erhalte ich obige Fehlermeldung
Muss ich nun meine ganzen Tabellen wieder auf Double ändern??
Hier mal die Abfrage. Alle Felder, die auch in der Datenbank Decimal sind, habe ich nochmals extra versucht zu casten - leider ohne Erfolg
Code:
var qry = from ez in ctx.tblEinzelheiten join l in ctx.tblLiefdat on ez.Id equals l.fk_einzelheitenId where ez.fk_EKId == iBestellEKId orderby ez.Id orderby ez.termin select new Termindaten { Bauteil = (int)ez.bauteil, Nummer = ez.Nummer, Name = ez.Bezeichnung, Menge = ez.Menge, PreisVPE = (decimal)ez.preisVPE, Einzelpreis = (decimal)ez.einzelpreis, Lieferant = ez.LieferantName, BestellDatum = ez.bestellDatum, }; return IEnumerableToDataTable.ToDataTable(qry.ToList());
Code:
public static DataTable ToDataTable<T>(this IEnumerable<T> collection) { DataTable dt = new DataTable("DataTable"); Type t = typeof(T); PropertyInfo[] pia = t.GetProperties(); //Inspect the properties and create the columns in the DataTable foreach (PropertyInfo pi in pia) { Type ColumnType = pi.PropertyType; if ((ColumnType.IsGenericType)) { ColumnType = ColumnType.GetGenericArguments()[0]; } dt.Columns.Add(pi.Name, ColumnType); } //Populate the data table foreach (T item in collection) { DataRow dr = dt.NewRow(); dr.BeginEdit(); foreach (PropertyInfo pi in pia) { if (pi.GetValue(item, null) != null) { dr[pi.Name] = pi.GetValue(item, null); } } dr.EndEdit(); dt.Rows.Add(dr); } return dt; } }
Comment