I recall there is a difference between some methods/properties called directly on the DataTable class, and the identically named methods/properties on the DataTable.Rows pro
I don't believe that DataTable.Clear does clear columns. This code writes "1" to standard output:
var d = new DataTable(); d.Columns.Add("Hello", typeof(string)); d.Clear(); Console.WriteLine(d.Columns.Count);