الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن عمل لdrowplist الاول يعتمد على الثاني

بدأه خيال وحب في 9 مارس 2009 · 8 رد · 577 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

توضيح للمطلوب والمحاولة

لدي ثلاث جداول

الجدول الاول ( رقم المادة - عنوان المادة - تفاصيل المادة )Modules Table

1 رياضيات 124

2 الفيزياء 123

3 الاحياء 127

الجدول الثاني (رقم المدرس- اسم المدرس - تفاصيل المدرس) Teacher Table

11 احمد مميز

12 خالد مميز

الجدول الثالث (رقم متسلسل - رقم المدرس- رقم المادة ) AddModulesToTeacher

1 11 1

2 11 2

3 11 3

4 12 2

المطلوب هو كيف يمكنني ان اعمل فلترة لكل مدرس بحيث لا تظهر له مواد المدرسين الاخرين مثلا في هذا المثال خالد لديه مادة واحدة هي رقم 2 فيزياء فقط تظهر

محاولتي عن طريق ال Session لم تفلح بحيث استخدمت Where وعدلت في البيانت السشن بحيث تساوي TTID التي يفترض ان تكون ال DropList 1

لتظهر في ال DropList2

Dim TTID As Integer
		TTID = Me.DropDownList1.SelectedValue
		Session.Add("", TTID)

شكرا للجميع واتمنى التوضيح اذا كان هناك طريقة اخرى او ان الكود يحتاج لتعديل

:wub:

تحياتي

تم تعديل هذه المشاركة بواسطة خيال وحب في 9 مارس 2009 في 14:15

انا افكر اذا انا مبدع .... I think therfore I am Creative

#3

شكرا على المساعدة C++2003 شاهدت المثال ولكنه بدون قاعدة بيانات هل اجد لديك طريقة بقواعد البيانات؟؟

:wub:

تحياتي

انا افكر اذا انا مبدع .... I think therfore I am Creative

#4

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

أخي

الحل إن شاء الله سيكون عن طريق عمل Recurse Relation

لكن لكي تبنيها بشكل سليم يجب أن تعرف

هل المادة الواحد يدرسها أكثر من مدرس ؟

أم

المدرس الواحد يدرس أكثر من مادة ؟

بعد الإجابة على هذا السؤال ستجد الحل سهل إن شاء الله

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#5

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

مرحبا بك Mr.Mando وشكرا لتفاعلك ومساعدتك

الاجابة على سؤالك

الاول لا كل مدرس له مواده ولا يدرسها احد غيره

الثاني نعم كل مدرس يدرس اكثر من مادة ..

كيف سيكون الحل ان شاء الله ؟؟

انا افكر اذا انا مبدع .... I think therfore I am Creative

#6

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

أخي الكريم نحلها بطريقة أخرى غير الـ Recurse Relation حتى تكون أسهل في الفهم إن شاء الله

قم بعمل جدولين

الجدول الأول Teachers

يحتوي على TeacherID & TeacherName

الجدول الثاني Subjects

يحتوي على SubjectID & SubjectName & TeacherID

مع مراعاة أنواع الحقول وسأتركها لك

في الكود سنكتب كالآتي ولك التعديل بما يناسب مشروعك

تحت حدث Page_Load نكتب

SqlConnection constr = new SqlConnection();
		constr.ConnectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ToString(); // الكونكشن موجود في ملف الكونفيج
		constr.Open();
		SqlCommand cmd = new SqlCommand();
		cmd.Connection = constr;
		cmd.CommandText = "select * from Teachers";
		SqlDataReader dr = cmd.ExecuteReader();
		DropDownList1.DataTextField = "TeacherName";
		DropDownList1.DataValueField = "TeacherID";
		DropDownList1.DataSource = dr;
		DropDownList1.DataBind();
		dr.Close();
		constr.Close();

وفي الـ DropDownList التي سيكون فيها أسماء المدرسين (DropDownList1 في المثال الحالي)

تحت حدث DropDownList1_SelectedIndexChanged نكتب نفس الكود تقريبا مع اختلاف بسيط

SqlConnection constr = new SqlConnection();
		constr.ConnectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ToString();
		constr.Open();
		SqlCommand cmd = new SqlCommand();
		cmd.Connection = constr;
		cmd.CommandText = "select * from subjects where TeacherID= @TID";
		cmd.Parameters.AddWithValue("@TID", DropDownList1.SelectedValue);
		SqlDataReader dr = cmd.ExecuteReader();
		DropDownList2.DataTextField = "Subject";
		DropDownList2.DataValueField = "SubjectID";
		DropDownList2.DataSource = dr;
		DropDownList2.DataBind();
		dr.Close();
		constr.Close();

وبهذا تكون قد حللت المشكلة إن شاء الله

الكود بسيط وليس معقد فإذا كان لديك أي سؤال أو أي جزء غير مفهوم فضعه هنا وسأشرحه لك إن شاء الله

تمنياتي بالتوفيق

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#7

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

الكود صحيح ويعمل لدي ولكن فيه المشكلة التالية

الاول لا مشاكل

الثاني عند الاختيار لا يعمل Fill للدروب لست الثاني

بعد ذلك

جربته في Button يعمل جيدا ولكنه يتسبب بارجاع الدروب ليست الاول لاول قيمة مسجلة في قاعدة البيانات

هل يمكن اعمله بدون الزر ؟؟؟!

هذا كود الزر حاليا

Protected Sub Dept_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dept.DataBinding
		Dim constr = New SqlConnection()
		constr.ConnectionString = ConfigurationManager.ConnectionStrings("OESConnString").ToString()
		constr.Open()
		Dim cmd3 = New SqlCommand()
		cmd3.Connection = constr
		cmd3.CommandText = "select * from Modules where DeptID= @DID"
		cmd3.Parameters.AddWithValue("@DID", Dept.SelectedValue)
		Dim dr3 = cmd3.ExecuteReader()
		DropDownList1.DataTextField = "ModuleName"
		DropDownList1.DataValueField = "ModuleID"
		DropDownList1.DataSource = dr3
		DropDownList1.DataBind()
	End Sub

شكرا لك اخي على المساعدة وان شاء الله اكمل المشروع

انا افكر اذا انا مبدع .... I think therfore I am Creative

#8

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

بالنسبة للـ Dropdownlist قم بتغيير خاصية الـ AutoPostBack إلى true وسيعمل معك بدون مشاكل ان شاء الله

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#9

شكرا جزيلا ضبط الكود عن طريق ال AppendDataBoundItems=True

:thumb_up:

تحياتي الحارة اليك معلمي Mr Mando

انا افكر اذا انا مبدع .... I think therfore I am Creative

مواضيع مشابهة