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

dropdownlist& datagrid

مغلق
بدأه metsy في 9 يونيو 2007 · 14 رد · 1,300 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

من فضلكوا انا عندي دروب داون ليست عمللها كونكت مع جدول عندي في قاعدة بيانات سيكول ... انا عايزة بس لما المستخدم يختار من الدروب داون يعرضله البيانات الخاصة بالاختيار في صورة جدول .... انا ارفقت الكود ارجوكوا اي حد يساعدني ضروري انا بحثت كتير جدا في الموضوع دة

 conn = new SqlConnection("Integrated Security=True;Data Source=ABULWAFA;Initial Catalog=Dina;");
			SqlCommand cdm = new SqlCommand();
			cdm.Connection=conn;
			cdm.CommandText="select City_name from Cities";
			SqlCommand cdom = new SqlCommand("select المركز,العنوان,Centers_ID from Centers where Cities_name='" + cities.SelectedItem + "' ", conn);





			conn.Open();
			SqlDataReader dr = cdm.ExecuteReader();
			while(dr.Read())
			{
				cities.Items.Add(dr.GetString(0));
			}
			dr.Close();
#2

الموضوع بسيط ولا يهمك

ولكن في هذه الحالة لازم أنا وانت نستخدم البارامترات على مستوى الاستدعاء SQL

طيب

شو يعني باراميتر في الاستدعاء SQL

هي قيمة متغيرة تعطى للاستدعاء لتحقيق ديناميكية في هذا الاستدعاء وهي مدعومة بشكل ممتاز في SQL Server

طيب بيصير المثال كالتالي:

SELECT * FROM [TableName] Where [FieldName]=@Value

طيب كيف رح نعمل هالموضوع ؟؟؟ هون السؤال

تابع معي

1- نضيف عنصر SqlDataSource

-2 وعند اضافته للصفحة خد المعالج الخاص به مشان ضبط الاستعلام

هلأ منحط الاستعلام السابق (كمبرمج مبتدئ عليك معرفة كيفية تعديل الاستعلام ليلبي احتياجاتك)

وبعد ما نضغط زر التالي منلاحظ انو عم يقلي من يون جبلك قيم الباراميتر اللي اسمو بمثالي Value

أنا بس بختار انو جيبو من Control

بيقلي من أي كنترول جبلك اياه ؟؟

أنا بس بقلو جيبو من DropDownList وهي لحالو بيعرف انو رح ياخد قيمة SelectedValue من دون عناء

هلأ اذا ما عجبتك هالطريقة في أكتر من طريقة تعتمد على نفس المبدأ

واذا بدك طريقتك الخاصة ففقط حطي

كود

GridView1.DataBind()

وحتلاقي كل شيء يعمل باذن الله تعالى

هلأ ما في مضمون لانو المثال غير مرفق حيث لا يكفي ما كتبته حتى يتم التعديل بشكل سليم

اذا أردت استخدام ما شرحته في البداية فهو ديناميكي بشكل كبير ومن ميزاته السرعة حيث أنه (Integrated Feature) من مايكروسوفت

أما اذا لم تعجبك شركة مايكروسوفت (مثل الكثير من المبرمجين) فعليك بارفاق المثال وان شاء الله الحل موجود وسهل

هذا ما أعلم والله أعلم

#3

انا عندي جدول اسمو City انا عاملة منه الدروب دون ليست

 conn = new SqlConnection("Integrated Security=True;Data Source=ABULWAFA;Initial Catalog=Dina;");
			SqlCommand cdm = new SqlCommand();
			cdm.Connection=conn;
			cdm.CommandText="select City_name from Cities";
conn.Open();
			SqlDataReader dr = cdm.ExecuteReader();
			while(dr.Read())
			{
				cities.Items.Add(dr.GetString(0));
			}
			dr.Close();

والجدول دة انا واخدة البرايمري كي بتاعو اللي هو City_ID وعاملاه فورين كي في جدول Centers

الدروب داون دي عبارة عن اسماء محافظات و الجدول centers عبارة عن مراكز الخدمات في كل محافظة

انا عايزة لما المستخدم يختار محافظة يظهرله المراكز الخاصة بها من الجدول ويظهر في شكل جدول

شكرا لاهتمامك في انتظار ردك

#4

آسف شفت ردك وأنا رايح نام

خلص من بكرا الصبح عالقهوة تبع الساعة سبعة بحللك مشكلتك ان شاء الله تعالى

ولا يهمك كل شي خير

آسف مرة تانية بس النوم أهم شي عندي لانو من دونو ما بيعود في تركيز بالموضوع

خلص وعد بكرا على قهوة الصبح بحللك اياها

شكرا عالانتظار

#5

with cmd

.connectionstring = pla pla pla

.commandtext="select * from city where city_name = @val1"

.Parameters.Add("@val1", OleDbType.VarWChar).Value = dropdownlist.selecteditem

end with

بتمنى مشاركتي تكون فيها الفائدة للسائل

M . O . H . ' . D. . . . . . . .G . H . A . L . I . B

e-mail : mumado99@hotmail.com

select * from dbo.my_friends where friend_desc in ('loyal','faithful','dedicated') order by priority_value

#6
with cmd 

.connectionstring = pla pla pla

.commandtext="select * from city where city_name = @val1"

.Parameters.Add("@val1", OleDbType.VarWChar).Value = dropdownlist.selecteditem

end with

M . O . H . ' . D. . . . . . . .G . H . A . L . I . B

e-mail : mumado99@hotmail.com

select * from dbo.my_friends where friend_desc in ('loyal','faithful','dedicated') order by priority_value

#7

والله مشكور على المشاركة بس للأسف انا مش بعرف احول من فيجوال بيسك لسي اشارب

في انتظارك يا Arwany ياريت ضروري ترد علية عشان ده مشروع تخرجي

شكرا لكل من بيساعدني بجد في هذا المنتدى والله انتو منتدى تحفة

#8

الطريقة التي اشار اليها الاخ Arwany هي الافضل لانها لا تتطلب كتابة اي كود ,اي انها Declarative .اترك الباقي له :)

تحياتي

مدني

#9

افتح الفيجوال ستوديو وافتح مشروعك

هلأ أنشئ صفحة جديدة زفي هذه الصفحة ضع العناصر التالية :

SqlDataSource من قسم Data الموجود في شريط الأدوات

طيب هلأ من القائمة الذكية Smart Tag انقر على Configure Data Source

طيب اذا سلسلة الاتصال بقاعدة البيانات مخزنة داخل Web.Config رح تلاقيها موجودة ضمن قائمة وإلا فأنشئ سلسلة اتصال بقاعدة البيانات

(ملاحظة : اتصل بقاعدة البيانات من الفيجوال ستوديو وسترى أن نفس قاعدة البيانات موجودة ضمن تلك اللائحة في مربع حوار اعدادات عنصر الاتصال الذي تمت اضافته منذ قليل ولكن سيسألك الفيجوال هل تريد تخزين هذه السلسة في ملف الاعداد (يفضل نعم))

حسنا هلأ نكتب الاستعلام المراد فمثلا في الحالة هنا سنكتب :

select City_name from Cities

طيب هلأ منخلص هذا العنصر ومنروح على الصفحة ومنضيف عنصر DropDownList

هلأ من القائمة الذكية (ما في أحلى منها هالقائمة الذكية) مناخد Choose DataSource

هلأ منختار من القائمة العنصر اللي توه أضفناه (SqlDataSource) وعند اختياره منعين القيم اللي تحتو

بمثالك هادا ما في غير City_Name لذلك هي القيمة منحطها للخانتين (مهم نعرف شو هدول)

طيب هلأ بعد ما نخلص هالموضوع منضيف عنصر عرض بيانات (GridView) مثلا

ومناخد القائمة الذكية لالو(شو حلوة هالقائمة الذكية) ومنها ومن Choose Datasource منختار

<New DataSource>

هلأ منمشي بالمعالج وهو نفس المعالج السابق (لاحظ سلسلة الاتصال المضافة موجودة هنا في القائمة)

هلأ منحط الاستعلام المزود ببارامترات كالتالي:

Select * from Centers Where City_name=@CityName

هلأ بعد ما نضغط على التالي رح يقلك المعالج من وين جيب قلمة هالباراميتر اللي ضفتو ؟؟؟

السؤال بسيط منقلو خدو من كونترول فبيطلعلي قائمة تانية وبيقلي فيها شو هوي هالكنترول ؟

انت كمبرمج خبير (حلوة هي خبير) لازم تختار العنصر DropDownList اللي ضفتو من شوي

لحالو بيعرف انو رح ياخد SelectedValue من هالعنصر (ذكي يخزي العين عنو)

هلأ مننهي المعالج ومنشغل الصفحة وكل شي جاهز للعمل

طبعا عنصر عرض البيانات GridView هو عنصر اختياري وهنالك العديد من العناصر التي أفضله عن غيرها في كثير وليس كافة المواضع لأن هنالك بعض المواقع الي لا غنى لغيره عنه

هذا ما أعلم والله أعلم

#10

:wacko: :wacko: :wacko: واضح انك بتشرح على 2005 وانا شغالة على 2003

مافيش طريقة اخرى على 2003 الله يكرمك

#11

طيب خلينا نجرب الموضوع التالي:

نضيف عنصر DropDownList إلى الويب فورم

(aspx page)

بعدين نكتب الكود التالي في

Page_Load

Dataset ds=new Dataset();
SqlConnection conn=new SqlConnection("Connection String...");
SqlDataAdapter da=new SqlDataAdapter("SELECT City_Name FROM City_Tbl",conn);
try
{
		  conn.Open();
		  da.Fill(ds);
}
finally
{
		  conn.Close();
}
DropDownList1.DataSource=ds;
DropDownList1.Databind();

هلأ نكتب الكود التالي في حدث تغيير الاختيار في لائحة DropDownList كالتالي:

Dataset ds=new Dataset();
SqlConnection conn=new SqlConnection("Connection String...");
SqlDataAdapter da=new SqlDataAdapter("SELECT * FROM Table_Name Where City_Name="+DropDownList.SelectedValue.Replace("'","''")+",conn);
try
{
		  conn.Open();
		  da.Fill(ds);
}
finally
{
		  conn.Close();
}
GridView1.DataSource=ds;
GridView1.Databind();

جرب هالكود وان شاء الله بيمشي الحال

هذا ما أعلم والله أعلم

تم تعديل هذه المشاركة بواسطة Arwany في 10 يونيو 2007 في 15:46

#12

انا اسفة اني اتأخرت في الرد بس كان عندي امتحان والله ..... دلوقتي انا جربت اللي قولت عليه بس مانفعش وحاولت اعدل كتير فيه بس برده مانفعش :(

#13

السلام عليكم

طيب إذا كنا نريد عرض البيانات داخل label

او مباشرة داخل خلية جدول ماهو الكود البديل ؟

أو ماهي الاداة الموجودةفي أدوات Data من أدوات tool box

,والتي يكون شكل البيانات فيها كأنها label

مع العلم أني أعمل على visual studio 2005

وشكرا جزيلاُ

#14

طيب ...

الموضوع عزيزي الكريم هو موضوع جلب البيانات

فأنا في هذا المثال السابق الذكر وضحت أنك تحضر البيانات بطريقة Declerative ومن دون أكواد

ثم وضعت طريقة جلب البيانات بالكود

هلأ انت اذا مثلا عندك لائحة وجبت فيها البيانات بشكل نظامي...

مثلا لنقول انو عندك جدول دول ولكل دولة توقيت زمني معين (مجرد مثال)

انت بدك تختار الدولة ويظهر على ال Label التوقيت الزمين الخاص فيها فقوم بالعملية التالية:

(مفترضين انك محضر البيانات لعرض اسم الدولة في Text و رقم الدولة في Value لكل عنصر من عناصر DropDownList)

الجدول :Details هو الجدول الذي يحتوي على التوقيت الزمني لكل دولة

قم بكتابة ما يلي:

عند حدث تغيير الاختيار (لا تنسى أن تكون خاصية Enable PostBack مفعلة للعنصر DropSownList)

string SQL="SELECT Time_Info FROM Details Where Country_Id="+DropDownList1.SelectedValue;//Note that SelectedValue Will return string
SqlConnection conn=new SqlConnection("Connection String Here...");
SqlDataAdapter da=new SqlDataAdapter(Conn,SQL);
DataSet ds=new DataSet();
try
{
conn.Open();
da.Fill(ds);
}
finally
{
conn.Close();
}
if(ds.Tables.Count>0)
{
if(ds.Tables[0].Rows.Count>0)
{
Label1.Text=ds.Tables[0].Rows[0].ItemArray[0].ToString();
//Finished...
}
else
{
//There is table but there is no returned Data... Please check the Data in that table
}
}
else
{
//SQL has problem and there is no such table name
}

أرجو أن يكون الكود واضح عليك...

عزيزيز الكريم يبدو أنك لم تطلع على التعامل مع ADO.NET 2.0

أرجو منك القراءة قليلا في قسم ADO.NET لأن الشرح المختصر لن يفيدك اذا لم يكن عندك خلفية عن الموضوع

أظن أن هذا ما قصدته بسؤالك

هذا ما أعلم والله أعلم

تم تعديل هذه المشاركة بواسطة Arwany في 24 يونيو 2007 في 19:19

#15

شكراً جزيلاُ

هذا الموضوع مغلق.

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