السلام عليكم ورحمة الله وبركاته
أنا أعمل على مشروع التخرج وهو نظام جامعي إداري متطور قائم على نظام الباركود..
استخدمت لغة الـ C#.Net و SQL server
إحدى مهام هذا البرنامج هو عمل تحضير الكتروني للطلاب وأريده أن يظهر بالشكل التالي:
رقم الطالب | اسم الطالب | المحاضرة الأولى | المحاضرة الثانية | المحاضرة الثالثة | وهكذا على حسب عدد محاضرات المادة
| | | | |
حيث أنني قمت بتخزين بيانات هذا الجدول في قاعدة البيانات في جدول attendance الذي يحتوي على الحقول التالية:
stud_ID , sub_ID , date , attend , lec_num
حيث أنها تمثل رقم الطالب ، رقم المادة ، تاريخ المحاضرة ، الحضور ، ورقم المحاضرة على التوالي
فاستخدمت أداة الـ DataGridView لعرض الجدول
واستخدمت الاستعلام التالي
SELECT DISTINCT (attendance.stud_ID) , student.st_1name +' '+student.st_2name +' '+student.st_3name +' '+ student.st_4name , (SELECT attendance.attend WHERE attendance.lec_num = 1), (SELECT attendance.attend WHERE attendance.lec_num = 2), ( SELECT attendance.attend WHERE attendance.lec_num= 3) FROM student,attendance WHERE attendance.sub_ID ='" + ClassGlobal.subject + "' and student.stud_ID = attendance.stud_ID
كما استعنت بالجدول student الذي يحتوي على بيانات الطالب
والمتغير ClassGlobal.subject الذي يحتفظ برقم المادة الذي نريد تحضير الحضور لها
لكن المشكلة التي واجهتني هي أن حضور كل طالب لكل محاضرة في سطر واحد، أي أن الطالب يتكرر بعدد المحاضرات كما هو موضح بالصورة المرفقة
لكن أنا أريد عرض تحضير الطالب الواحد في جميع المحاضرات في صف واحد
والسؤال الآخر هو هل توجد طريقة أخرى لتكرار الاستعلام عن الحقل attend لإني أشعر أن هذه الطريقة غير عملية ومجهدة ، أي هل يمكن إدخال جملة الاستعلام داخل for loop وتتكرر بعدد المحاضرات
اعذروني عالإطالة ولكنني أردت أن تتضح الفكرة بشكل أفضل
وجزاكم الله ألف خير
أختكم الأماني السامية