If I implement the following:
var maxValue = dataTable.Compute("Max(columnName)");
then presumably the type of maxValue will be the datatype of the 'columnName' column in dataTable (or will it??). But what comparer does the Max expression use, and what dataTypes are supported? If the values in the column cannot be compared then Max cannot be evaluated and presumably an exception will be thrown. Is it sufficient to ensure that the column datatype implements IComparable, thus:
if (typeof(IComparable).IsAssignableFrom(dataTable.Columns[columnName].DataType))