Existe-t-il une meilleure méthode pour vérifier si un DataColumn dans un DataTable est numérique (provenant d'une base de données SQL Server)?Déterminez si DataColumn est numérique
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 pour la méthode d'extension, conserve la douleur 1 place –
Je n'ai pas inclus les types entiers non signés car ils n'étaient pas répertoriés dans http://msdn.microsoft.com/fr-fr/library/ms131092%28SQL 90% 29.aspx mais j'aime votre approche. – JustinStolle
@JustinStolle, je ferais mieux d'inclure les types non signés en fonction de la page MSDN que j'ai fournie. La page que vous référence est spécifique à SQL Server 2005. –