شما می خواید عنوان هر فیلد رو هم از دیتابیس بگیرید ؟
به روش بالا نمی تونید . من این روش رو به ذهنم میاد :
1- موقع گرفتن اطلاعات از دیتابیس همونجا که foreach دارید یک آرایه تعریف کنید و عناوینی که موردنظرتون هست توی اون بزارید
List<string> headers =new List<string>();
foreach (var id_hall in hall_part)
{
headers.Add(id_hall.Name);
}
بعد در رویداد DataBinding گریدویو این کد رو بنویسید :
if (e.Row.RowType = DataControlRowType.Header)
{
for(int i=0;i<headers.count;i++)
{
e.Row.Cells[i].Text = headers[i];
}
}
تست نکردم اما احتمالا کار می کنه