Самое разумное, что нужно сделать, это убедиться, что ваш DataTable напечатан, и этот столбец имеет тип DateTime. Затем, когда вы действительно хотите напечатать значения на экране, вы можете установить формат в этой точке, не сбрасывая при этом базовые данные.
Если это невозможно, вот метод расширения , который я часто использую:
public static void Convert<T>(this DataColumn column, Func<object, T> conversion)
{
foreach(DataRow row in column.Table.Rows)
{
row[column] = conversion(row[column]);
}
}
Вы можете использовать в вашей ситуации, как:
myTable.Columns["DateOfOrder"].Convert(
val => DateTime.Parse(val.ToString()).ToString("dd/MMM/yyyy"));
Он работает только с нетипизированными таблицами данных (например, тип столбца должен быть объектом или, возможно, строкой).