Gibt es eine Möglichkeit, den genauen Typ einer Spalte in einer DataTable
zu kennen? Im Moment bin ich dies zu tun:So erhalten Sie den genauen Typ numerischer Spalten inkl. Maßstab und Präzision?
DataTable st = dataReader.GetSchemaTable();
foreach (DataColumn col in st.Columns)
{
var type = col.DataType;
}
Jetzt mit type.Name
ich in der Lage bin zu finden, wenn es eine Zahl ist (int
oder decimal
..) oder string
aber das Problem ist, dass ich den genauen Typ benötigen, beispielsweise wenn in der Datenbank lassen Sie sagen, Spalte Rate
ist NUMBER(4,3)
dann hier in meinem Code bekomme ich nur Typ als "Dezimal" und keine Informationen über das Format 4,3
.
Jetzt ist die Voraussetzung, ich muss die Werte nach ihrem Typ für zB formatieren. wenn Rate=1.4
sollte es als 0001.400
(nach dem Format NUMBER(4,3)
) angezeigt werden. Da ich hier keine Informationen habe, kann ich die Werte nicht weiter verarbeiten. Gibt es denn eh dasselbe zu wissen?
Dank
http://msdn.microsoft.com/en-IN/library/system.data.datacolumn.datatype.aspx – Bharadwaj
Schleife Throught jede Zeile aka DataRow und mit Reflection getType der einzelnen .. –
Sie müssen sich die zusätzlichen Attribute in der Spalte ansehen, um genau zu bestimmen. Betrachten Sie zum Beispiel NumericPrecision und NumericScale Eigenschaften http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getschematable%28v=vs.110%29.aspx – dmarietta