منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كود] ترتيب واختيار c# - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم مكتبة اكواد C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=181)
+--- الموضوع : [كود] ترتيب واختيار c# (/showthread.php?tid=17741)



ترتيب واختيار c# - mera.55 - 21-10-16

السلام عليكم ورحمة الله وبركاته

في هذا الفورم عندي معلومات الطالب
اللي هي من جدول الطالب معلوماته العامة
وجدول التخصص وجدول النسب
يعني عندي ثلاثة جداول
اريد عرض معلومات الطالب اولا بصورة عادية وهذا تم ولكن في كود لم استطع تنفيذه
 اللي هو الاختيار من checkbox للترتيب تنازليا حسب معدلات الطلبة للمستوى النهائي  من كل تخصص
بعدها من الاختيار للارقام انه يكون حسب الرقم اللي اختاره يتم وضع الاختيار له
لو مثلا اختار 3  سيكون المختارين  3 من اعلى النسب في كل تخصص
ارجو المساعدة بالكود؟؟
[attachment=12063]


RE: ترتيب واختيار c# - ابو ليلى - 22-10-16

ما هو شكل حاوية البيانات لديك اخي الكريم

بمعنى اخر هل البيانات في Datatable او DataSet او Array

لنقدم لك الحل الافضل بما يتناسب مع مجموعة البيانات


RE: ترتيب واختيار c# - mera.55 - 22-10-16

لدي DataTable
وشكرا للمساعدة


RE: ترتيب واختيار c# - ممدوح - 22-10-16

أيضا لو امكن تضع مشروع مصغر لما تريد مع قاعدة بياناته


RE: ترتيب واختيار c# - mera.55 - 22-10-16

شكرا لك للمساعدة

ولكن لايمكنني تصميم مشروع مصغر لذك مرة اخرى لان الوقت يداهمني وامر بفترة امتحانات

لو تريد التعديل على الفورم سارسله لك مع قاعدة البيانات بسبب التحفظ عليه

 والمعذرة لذلك لانه مشروع تخرج


هذه صورة للجداول المستخدمة للعملية




RE: ترتيب واختيار c# - ابو ليلى - 22-10-16

الفكرة الاولى 

بما ان العمل سيكون على 3 جداول مجتمعة فالافضل حتى لا ندخل في تعقيدات الربط في الاستعلام 
ان تقومي بانشاء View في القاعدة و يضم جميع الحقول التي تحتاجينها من الـ 3 جداول و بعدها يتم تحميل هذا View الى Dataset او DataTable 
و يتم اللعب بالاستعلامات على هذا DataTable باستخدام Ling 
او حتى اذا كنت لا تودين استخدام Ling يمكنك استخدام جمل SQL مباشرة على هذا View بكل بساطة
و جلب البيانات الى DataGridView 
اذا اعجبتك الفكرة قومي بانشاء الـ View مع الاشارة الى معاني الحقول (اقصد كل حقل ماذا يمثل)
و ان شاء الله نتابع بعد ذلك ......


RE: ترتيب واختيار c# - ممدوح - 22-10-16

أخشى أن المشروع متشعب جدا لكن لا مانع من المحاولة في الانتظار على قدر الاستطاعة

هذه محاولة على ما فهمت من صورة الجداول
كود :
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


RE: ترتيب واختيار c# - mera.55 - 23-10-16

(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

ساحاول تجربة الطريقة وا وافي بالنتيجة


RE: ترتيب واختيار c# - ابو ليلى - 23-10-16

(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
الاخ ممدوح ارى من خلال جملة الاستعلام لديك ان البيانات تم جلبها من جدول الطلاب فقط 
السؤال :لماذا استخدمت Inner Join اذا كانت البيانات كلها من جدول واحد ؟؟
سؤال اخر للاخت ميرا  ما هو الحقل (St_Current_Level) في جدول الطلاب هل هو نفس الحقل (Lvl_Current) من جدول Level
و ارى اننا بحاجة الى بعض التوضيح بخصوص الحقول التي تريدين عرضها في القريد و كذلك من اي جداول

لدي حدس يخبرني بهذا الشكل للاعمدة
PHP كود :
SELECT Specialization_Table.Specialization_Name,Student_Table.Student_IDStudent_Table.Student_NameLevel_Table.Lvl_Current
FROM 
Specialization_Table INNER JOIN  Student_Table ON Specialization_Table.Specialization_ID Student_Table.Specialization_IDINNER JOIN  Level_Table ON Student_Table.Student_ID Level_Table.Student_ID



RE: ترتيب واختيار c# - mera.55 - 27-10-16

عشان اوضح الفكرة


عندي في هالفورم اريد عن اختيار علامة الصح في خيار الترتيب التنازلي يتم ترتيب الطلبة لي  حسب معدلاتهم التي في حقل lvl_result  في جدول level  للفصل الدراسي الحالي لهم ويجمعهم حسب قروب من التخصصات
بعدها عبر الخيار للاعداد اتحكم في العدد المطلوب اختياره منهم  اي يتم تمرير متغير بالعدد عشان يرتبهم تنازليا وعلى خسب العدد المطلوب

ليتم تفعيل اختيارهم
هذي هي اظن الفكرة شوي متشعبة