Для тех, кто нашел это через Google, и у вас есть немного другой случай, когда в вашей таблице есть данные, и вы добавляете новый столбец (как я), если вы создаете столбец и устанавливаете тип данных в отдельных операторах, вы также получаете то же исключение. Однако, если вы сделаете это в том же операторе, он будет работать нормально.
Итак, вместо этого:
var column = myTable.Columns.Add("Column1");
column.DataType = typeof(int); //nope, exception!
Сделайте это:
var column = myTable.Columns.Add("Column1", typeof(int));