PDA

View Full Version : ترکیب چهار جدول در datagridview



mary3541
چهارشنبه 20 خرداد 1388, 13:55 عصر
چهار جدول به نام CourseTermTeacher و Courseو Teacher و Term دارم
جدول CourseTermTeacher دارای فیلدهای CourseTermTeachr_ID و Course_ID_FK و Teacher_ID_FK و Term_ID_FK میباشد
جدول Course دارای فیلدهای Course_ID و Title است
جدول Teacher دارای فیلدهای Teacher_ID و Name و Family و ...است
جدول Term نیز دارای فیلدهای Term_ID و Title است
میخوام تو datagridview اطلاعات این چهار جدول به صورت زیر نمایش داده بشه
CourseTermTeacher_ID و Teacher_ID_FK و Name و Family و Term_ID_FK و Titleو Course_ID_FK و Title
میشه کدش رو برام بنویسید؟

happy65_sh
چهارشنبه 20 خرداد 1388, 14:30 عصر
SqlDataAdapter da = newSqlDataAdapter("select CourseTermTeacher_ID,Teacher_ID,Name,Family,Term_I D,Term.Title,Course_ID,Course.Title from CourseTermTeacher join Term on CourseTermTeacher_ID=Term_ID join Course on CourseTermTeacher_ID=Course_ID join Teacher on CourseTermTeacher_ID=Teacher_ID", connection);
DataTable dt = newDataTable();
da.Fill(dt);
yourdatagridview.DataSource = dt;

h.jaza
چهارشنبه 20 خرداد 1388, 15:49 عصر
روش مذکور (JOIN) خیلی هزینه برداره چرا که اول میاد و یه جدول مجازی به اندازه ی ضرب کارتزین جدوال در خواستی می سازه و بعد توشون SELECT می کنه، روش بهتره استفاده از SELECT های تو در توئه:



SELECT CourseTermTeacher_ID, Teacher_ID_FK, Term_ID_FK, Course_ID_FK,
Name, Family,
CourseTitle,
TermTile

FROM CourseTermTeacher,
Teacher,
Course,
Term

WHERE ...........


اینجوری...
البته به خاطر عدم تلاقی بین دو تا Title ها اسماشون رو به CourseTitle و TermTitle تغییر دادم.
با این روش تقریبا هزینه ی پردازش 3 برابر کاهش پیدا می کنه و تو سیستم های سنگین خیلی سرعت رو بالاتر می بره...