Gibt es einen besseren Weg, um zu überprüfen, ob eine DataColumn in einer DataTable numerisch ist (aus einer SQL Server-Datenbank stammt)?Ermitteln, ob DataColumn numerisch ist
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
}
}
}
+1 für Extension-Methode, hält den Schmerz 1 Platz –
Ich habe die unsigned Integer-Typen nicht enthalten, weil sie nicht in http://msdn.microsoft.com/en-us/library/ms131092%28SQL aufgeführt wurden .90% 29.aspx, aber ich mag Ihren Ansatz. – JustinStolle
@JustinStolle, ich würde besser die vorzeichenlosen Typen entsprechend der MSDN Seite einschließen, die ich zur Verfügung stellte. Die Seite, auf die Sie verweisen, ist die SQL Server 2005-spezifische. –