Свойство GridView.Columns
Проверьте это:
Свойство Columns (коллекция) используется для хранения всех явно
объявленные поля столбцов, которые отображаются в элементе управления GridView. Вы
также можно использовать коллекцию Columns для программного управления
коллекция полей столбцов.
Если к добавленным столбцам в вашей сетке добавлено больше столбцов, будет показано количество добавленных столбцов, а не автоматически созданных столбцов.
Если вы показываете автоматически сгенерированные столбцы, то он покажет 0.
Проверьте эту разметку:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
</Columns>
</asp:GridView>
Теперь он покажет ваш результат подсчета столбцов в 1:
// Перед добавлением столбца в gridview
?dtResult.Rows.Count
9
?dtResult.Columns.Count
2
?GridView1.Rows.Count
9
?GridView1.Columns.Count
0
После добавления столбца в gridview.
?GridView1.Columns.Count
1