السلام عليكم ورحمة الله وبركاته
في هذا الفورم عندي معلومات الطالب
اللي هي من جدول الطالب معلوماته العامة
وجدول التخصص وجدول النسب
يعني عندي ثلاثة جداول
اريد عرض معلومات الطالب اولا بصورة عادية وهذا تم ولكن في كود لم استطع تنفيذه
اللي هو الاختيار من checkbox للترتيب تنازليا حسب معدلات الطلبة للمستوى النهائي من كل تخصص
بعدها من الاختيار للارقام انه يكون حسب الرقم اللي اختاره يتم وضع الاختيار له
لو مثلا اختار 3 سيكون المختارين 3 من اعلى النسب في كل تخصص
ارجو المساعدة بالكود؟؟
[
attachment=12063]
ما هو شكل حاوية البيانات لديك اخي الكريم
بمعنى اخر هل البيانات في Datatable او DataSet او Array
لنقدم لك الحل الافضل بما يتناسب مع مجموعة البيانات
لدي DataTable
وشكرا للمساعدة
أيضا لو امكن تضع مشروع مصغر لما تريد مع قاعدة بياناته
شكرا لك للمساعدة
ولكن لايمكنني تصميم مشروع مصغر لذك مرة اخرى لان الوقت يداهمني وامر بفترة امتحانات
لو تريد التعديل على الفورم سارسله لك مع قاعدة البيانات بسبب التحفظ عليه
والمعذرة لذلك لانه مشروع تخرج
هذه صورة للجداول المستخدمة للعملية
الفكرة الاولى
بما ان العمل سيكون على 3 جداول مجتمعة فالافضل حتى لا ندخل في تعقيدات الربط في الاستعلام
ان تقومي بانشاء View في القاعدة و يضم جميع الحقول التي تحتاجينها من الـ 3 جداول و بعدها يتم تحميل هذا View الى Dataset او DataTable
و يتم اللعب بالاستعلامات على هذا DataTable باستخدام Ling
او حتى اذا كنت لا تودين استخدام Ling يمكنك استخدام جمل SQL مباشرة على هذا View بكل بساطة
و جلب البيانات الى DataGridView
اذا اعجبتك الفكرة قومي بانشاء الـ View مع الاشارة الى معاني الحقول (اقصد كل حقل ماذا يمثل)
و ان شاء الله نتابع بعد ذلك ......
أخشى أن المشروع متشعب جدا لكن لا مانع من المحاولة في الانتظار على قدر الاستطاعة
هذه محاولة على ما فهمت من صورة الجداول
كود :
SELECT TOP (3)
Student_Table.Student_ID,
Student_Table.Student_Name,
Student_Table.Specialization_ID,
Student_Table.St_Current_Level
FROM Specialization_Table
INNER JOIN Student_Table
ON Specialization_Table.Specialization_ID = Student_Table.Specialization_ID
WHERE ( Student_Table.St_Current_Level = @level )
ORDER BY Student_Table.Specialization_ID,
Student_Table.Student_Name
ومعروف أن TOP تأخذ أعلى أسطر وهنا تم تحديد 3 أسطر
و level@ هو بارامتر لتحديد المستوى
يبقى مسألة التنازلي والتصاعدي يكون مع ORDER BY فيكون DESC للتنازلي مثل
ORDER BY student_table.specialization_id DESC
ويمكن التنويع لكل عمود من ترتيب تصاعدي أو تنازلي
مع مراعاة أن الترتيب سيكون بناء على ترتيب اسماء الأعمدة بعد كلمة ORDER BY
(22-10-16, 07:43 PM)ابو ليلى كتب : [ -> ]الفكرة الاولى
بما ان العمل سيكون على 3 جداول مجتمعة فالافضل حتى لا ندخل في تعقيدات الربط في الاستعلام
ان تقومي بانشاء View في القاعدة و يضم جميع الحقول التي تحتاجينها من الـ 3 جداول و بعدها يتم تحميل هذا View الى Dataset او DataTable
و يتم اللعب بالاستعلامات على هذا DataTable باستخدام Ling
او حتى اذا كنت لا تودين استخدام Ling يمكنك استخدام جمل SQL مباشرة على هذا View بكل بساطة
و جلب البيانات الى DataGridView
اذا اعجبتك الفكرة قومي بانشاء الـ View مع الاشارة الى معاني الحقول (اقصد كل حقل ماذا يمثل)
و ان شاء الله نتابع بعد ذلك ......
شكرا استاذ
ولكن لم اتعامل مع view ولا اعرف كيفية تطبيقها لذلك سيصعب علي فهم ذلك قليلا
فانا اتعامل مع جمل الاستعلامات sql من خلال كلاس
عملية ظهور البيانات فيdatagridview تمت بالاستعلام
(22-10-16, 10:35 PM)ممدوح كتب : [ -> ]أخشى أن المشروع متشعب جدا لكن لا مانع من المحاولة في الانتظار على قدر الاستطاعة
هذه محاولة على ما فهمت من صورة الجداول
كود :
SELECT TOP (3)
Student_Table.Student_ID,
Student_Table.Student_Name,
Student_Table.Specialization_ID,
Student_Table.St_Current_Level
FROM Specialization_Table
INNER JOIN Student_Table
ON Specialization_Table.Specialization_ID = Student_Table.Specialization_ID
WHERE ( Student_Table.St_Current_Level = @level )
ORDER BY Student_Table.Specialization_ID,
Student_Table.Student_Name
ومعروف أن TOP تأخذ أعلى أسطر وهنا تم تحديد 3 أسطر
و level@ هو بارامتر لتحديد المستوى
يبقى مسألة التنازلي والتصاعدي يكون مع ORDER BY فيكون DESC للتنازلي مثل
ORDER BY student_table.specialization_id DESC
ويمكن التنويع لكل عمود من ترتيب تصاعدي أو تنازلي
مع مراعاة أن الترتيب سيكون بناء على ترتيب اسماء الأعمدة بعد كلمة ORDER BY
ساحاول تجربة الطريقة وا وافي بالنتيجة
عشان اوضح الفكرة
عندي في هالفورم اريد عن اختيار علامة الصح في خيار الترتيب التنازلي يتم ترتيب الطلبة لي حسب معدلاتهم التي في حقل lvl_result في جدول level للفصل الدراسي الحالي لهم ويجمعهم حسب قروب من التخصصات
بعدها عبر الخيار للاعداد اتحكم في العدد المطلوب اختياره منهم اي يتم تمرير متغير بالعدد عشان يرتبهم تنازليا وعلى خسب العدد المطلوب
ليتم تفعيل اختيارهم
هذي هي اظن الفكرة شوي متشعبة