Beim Lesen von Daten aus der Datentabelle, die von einer Excel-Datei aufgefüllt wird, kann "Objekt vom Typ 'System.Double' nicht in den Typ 'System.String' umgewandelt werden." Ausnahme, wenn der Spaltentyp doppelt ist. Mein Code sieht aus wie untenLINQ-Operation zum Erstellen einer Cast-Ausnahme
var importedProducts = dtImportedData.AsEnumerable()
.Where(dtProduct => !string.IsNullOrWhiteSpace(dtProduct.Field<string>("product_id")))
.Select(dtProduct => new
{
product_id = dtProduct.Field<string>("product_id").Trim(),
product_qty = Convert.ToInt32(dtProduct.Field<double>("product_qty "))
}).ToList();
Wenn product_id Spalte Text-Datentyp hat, alles in Ordnung ist. Wenn jedoch ein doppelter Datentyp vorhanden ist, wird eine Ausnahme ausgelöst.
Ich habe Lösung bereits versucht, von here
So haben Sie eine Spalte, die ihren Typ in einen anderen Typ magisch ändern? – Steve
@Steve, Sie haben Recht. Benutzer ändern Excel Spalte Dateityp nach seinem Wunsch und wir können es nicht kontrollieren. – user1926138
Logischerweise sollten Sie dann nicht denselben Code zum Lesen verschiedener Datentypen verwenden. – Steve