Bestimmen Sie, ob DataColumn numerisch ist
Gibt es eine bessere Möglichkeit als diese, um zu überprüfen, ob eine DataColumn in eine DataTable ist eine numerische (kommen aus einer SQL Server-Datenbank)?
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetStoredProcCommand("Get_Some_Data");
DataSet ds = db.ExecuteDataSet(cmd);
foreach (DataTable tbl in ds.Tables) {
foreach (DataColumn col in tbl.Columns) {
if (col.DataType == typeof(System.Single)
|| col.DataType == typeof(System.Double)
|| col.DataType == typeof(System.Decimal)
|| col.DataType == typeof(System.Byte)
|| col.DataType == typeof(System.Int16)
|| col.DataType == typeof(System.Int32)
|| col.DataType == typeof(System.Int64)) {
//this column is numeric
} else {
//this column is not numeric
}
}
}
InformationsquelleAutor der Frage JustinStolle | 2009-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist kein guter Weg, um zu überprüfen, ob der Typ numerisch ist, außer dem Vergleich mit der tatsächlichen Arten.
Dies gilt insbesondere, wenn die definition von numerischen ist ein bisschen anders (in deinem Fall, nach code - vorzeichenlose Ganzzahlen sind nicht numerics).
Andere Sache ist, dass DataColumn.Datentyp laut MSDN unterstützt nur die folgenden Typen:
Den Fett Arten sind Numerik (wie ich es definieren), so müssen Sie sicherstellen, dass Sie überprüfen Sie Sie.
Ich persönlich würde schreiben Sie eine Erweiterungsmethode für den Typ DataColumn (nicht für den TYP!).
Ich hasse die wenn...dann..sonst Sache stattdessen nutze ich eine SETZT-basierten Ansatz, wie diese:
Und die Verwendung wäre:
die ist einfach genug für mich
InformationsquelleAutor der Antwort Dmytrii Nagirniak
Andere Methode ohne Verwendung von Arrays, nur durch eine Zeile code:
Dieser code-Zeile kann verwendet werden, entweder als normaler Helfer-Methode oder als ein extension-Methode.
InformationsquelleAutor der Antwort S.Serpooshan
Vielleicht könnte man es kürzer mit:
InformationsquelleAutor der Antwort Jonathan