سلام دوست عزیز،
با کد فوق، متغیر q از نوع IQueryable<int> خواهد بود و نمی توان DataGridView را با آن پر کرد، شما می بایست کد را به گونه ای تغییر دهید که خروجی از نوع لیست/کالکشنی از Entity مورد نظر شما با تمام/تعداد مشخصی از فیلدها باشد، برای اینکار باید از کلیدواژه new در select استفاده نمایید،
برای انتخاب یک فیلد:
dbDataContext db = new dbDataContext();
var q = from c in db.hesabs
select new { c.codeshobe };
dataGridView2.DataSource = q;
برای انتخاب بیش از یک فیلد:
dbDataContext db = new dbDataContext();
var q = from c in db.hesabs
select new { c.codeshobe, c.namehesab };
dataGridView2.DataSource = q;
،/