2016-11-03 5 views
-1

Ich bin Daten von SQL-Server abrufen und exportieren Sie sie zu Excel programmgesteuert mit C# .Auf der Grundlage der Spalte Datentyp, ich mache Format der Zelle.Hier habe ich ein Problem.Datenbank-Datentyp Konvertierung Problem

In SQL-Server, Abrufen Spalten Datentyp ist definiert als numerisch (20,0) .In meiner Anwendung Spalte Typ kommt als Dezimal.Ich möchte den Typ anderen numerischen Typ wie Double oder Int64 erhalten. Gibt es eine Möglichkeit, es zu bekommen?

+0

Es ist nicht klar, was Sie fragen oder was Sie als Antwort erwarten. Wenn Sie ein bestimmtes Problem haben, fügen Sie bitte ein [Minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) bei. Bitte lesen Sie auch [Wie stelle ich eine gute Frage] (http://stackoverflow.com/help/how-to-ask). – Igor

+0

Wie bekommen Sie die Daten aus der DB? Verwenden Sie einen DateReader, DataAdapter oder ein anderes ORM? Der sicherste Weg ist wahrscheinlich, es als "Dezimal" zu erhalten und dann in C# umzuwandeln, so dass Sie mit Überlaufbedingungen umgehen können. –

Antwort

0

Da der Datentyp in der Datenbank numerisch ist, haben Sie zwei Optionen, um entweder ein double oder int zu erhalten.

  1. Ändern Sie den Datentyp in der Datenbank von numerisch nach int.
  2. Empfangen Sie die Daten als Dezimalzahl und runden Sie sie ab. Verwenden Sie dazu Math.Round als Convert.ToInt32 kann etwas unerwartetes Verhalten haben.