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

مشكلة في الكمبو بوكس

مغلق
بدأه eng_sayed في 7 أكتوبر 2007 · 11 رد · 1,154 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ComboBox1.Items.Add(TextBox1.Text)

الكود دة لاضافة عناصر داخل الكمبو بوكس

وفعلا بيتم اضافة العناصر ولكن عند اغلاق وتشغيل البرنامج مرة ثانية

نلاحط لايوجد اي عناصر من العناصر المضافة مسبقا ونجد الكمبو بوكس فارغ

انا عايز اخلي العناصر موجودة دائما

كما اني بضيفها من الخصائص

وياريت كود لعمل دليت للعناصر كلها

وكود دليت لعنصر واحد معين

وشكرا جزيلا وبارك الله وفيكم إن شاء الله

#2
اقتباس
انا عايز اخلي العناصر موجودة دائما كما اني بضيفها من الخصائص

أفضل شيء في هذه الحالة تضيفها من الخصائص. لكن إذا كنت لا تريد ذلك:في حدث Load للـ Form اكتب مارتيد إضافته:

ComboBox1.Items.Add("Item 1")
		ComboBox1.Items.Add("Item 2")
		ComboBox1.Items.Add("Item 3")
		ComboBox1.Items.Add("Item 4")
		ComboBox1.Items.Add("Item 5")
		ComboBox1.Items.Add("Item 6")

اقتباس
وياريت كود لعمل دليت للعناصر كلها

ComboBox1.Items.Clear()

اقتباس
وكود دليت لعنصر واحد معين

هل تريد باسمه أم برقمه في القائمة؟

بالاسم

ComboBox1.Items.Remove("Item 5")

بالرقم

ComboBox1.Items.RemoveAt(4)

تم تعديل هذه المشاركة بواسطة Adel_N في 7 أكتوبر 2007 في 21:07

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#3

شكرا جدا لمرور حضرتك

بس برضو كدة هي هي

انا عايزها في الحدت كليك للبوتن

فورم لود هي هي الكود بيشتغل لما بقتح الفورم

انا المفورض ادخل اسم الصنف في تيكست ودوس علي البوتن يضاف الصنف في الكمبو

ثانيا ودة الاهم ان الصنف يفضل علي طول اغلاق وتشغيل البرنامج موجود دائما

وشكرا جزيلا

#4
اقتباس
انا المفورض ادخل اسم الصنف في تيكست ودوس علي البوتن يضاف الصنف في الكمبو

ثانيا ودة الاهم ان الصنف يفضل علي طول اغلاق وتشغيل البرنامج موجود دائما

في هذه الحالة أين ستحفظ الأصناف التي يتم إضافتها وقت التشغيل (أنت لا تعلم ما هي كما هو واضح.. لأنك لو كنت تعلم استخدم ما كتبته لك أعلاه)؟

لكي تحفظ الأصناف التي يتم إضافتها وقت التشغيل بحيث تكون موجود حتى بعد ستين سنة، احفظ الأصناف في قاعدة بيانات.

تم تعديل هذه المشاركة بواسطة Adel_N في 7 أكتوبر 2007 في 21:20

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#5

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

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

والبفعل تم تسجيل الاصناف في الجدول

وبالفعل تم مليء الكمبو بوكس بالعمود بتاع الاصناف اللي في الجدول

ولكن المشكلة هنا

اولا دة الكود بتاع ملئ الكمبو بوكس

st.MoveFirst()

Do While Not st.EOF

ComboBox1.Items.Add(st("itemname"))

st.MoveNext()

Loop

بعد كدة لما اشوف الكمبو بوكس بدل ما الاقي الاصناف الاقي الكلام دة

System.__ComObject

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

علي فكرة انا كنت مستخدم الكود دة في الفجوال بيسك 6 وكان شغال معايا زي الفل

وشكر جزيلا

#6

أخي الكريم أنت انتقلت إلى VB.Net ولم تنتقل إلى ADO.Net. لا زلت تستخدم ADO للاتصال بقاعدة البيانات وهذا خطأ.

على أيه حال يمكنك أن تستمر في استخدام ADO ولكني لا أنصحك بهذا.

أذا قررت الاستمرار عدل الكود السابق بحيث يكون بدلاً من:

ComboBox1.Items.Add(st("itemname"))

يصبح:

ComboBox1.Items.Add(st("itemname").Value)

إذا لم تخني الذاكرة.

أخوك.

تم تعديل هذه المشاركة بواسطة Adel_N في 8 أكتوبر 2007 في 02:51

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#7

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

الف شكر يا هندسة والكود شغال وزي الفل ولكن انا لاحظت مشكلة

اكيد طبعا المستخدم لما يستلم البرنامج قاعدة البيانات بتاعت الاصناف هاتكون فارغة

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

st.MoveFirst()

دة طبعا لان مفيش ولاصف في قاعدة البيانات ولا اول ولا تاني ولا اخير ولا اي حاجة

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

علشان كدة اا استخدمت شرط

كان شغال معايا في الفجوال 6

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

exit sub

والكود هو

If st.RecordCount = 0 Then

MsgBox("لايوجد اصناف")

Exit Sub

End If

اتمني من حضرتك تعديل في الكود وكتابة الكود الصح

#8

أخي الكريم لم أفهم سؤالك جيداً لكن..

إذا كنت في ADO تستخدم الخاصية RecordCount للـ Recordset عشان تعرف عدد السحلات التي رجعت من قاعدة البينات...

فإنك في ADO.Net تستخدم الخاصية Rows.Count للـ DataTable.

MyDataTable.Rows.Count

على أية حال لابد أن تتعلم ADO.Net بالرجوع إلى المواضيع المثبتة في قسم ADO.Net.

ملاحظة: إن الكود:

rs.MoveFirst()

سيرجع خطأ إذا كانت rs فارغة من السجلات أو كان الموضع الحالي هو بالفعل أول سجل. لذلك انتبه لهذا.. وأنصحك بكتابة التالي:

If Not rs.BOF and rs.RecordCount <> 0 Then
rs.MoveFirst()
End If

أخوك المخلص دائماً.

تم تعديل هذه المشاركة بواسطة Adel_N في 8 أكتوبر 2007 في 20:41

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#9

شكرا جزييلا ياخي

ولكن انا مش عارف استخدم الكود دة

MyDataTable.Rows.Count

انا عايزالبديل بتاع الكود دة ولو مسحت طريقة كتابتة

If st.RecordCount = 0 Then

MsgBox("لايوجد اصناف")

Exit Sub

End If

وانا انشاء سوف اتعلم الادو دوت نت

#10

أخي الكريم:

أولاً أنت حينما ترسل الاستعلام إلى قاعدة البيانات لينتج عنه سجلات ترجع في rs يكون الموضع الأفتراضي للمؤشر هو أول سجل فلا داعي لـ MoveFirst هنا.

ثانياً: أفترض أنك تريد أنت تكون 100% متأكد من أن المؤشر في أول سجل قبل ملأ ComboBox بالقيم، وتريد أن تظهر رسالة للمستخدم في حال كانت rs فارغة. اكتب التالي:

		If rs.RecordCount > 0 Then
			If Not rs.BOF Then
				rs.MoveFirst()
			End If
			Do While Not rs.EOF
				ComboBox1.Items.Add(rs("itemname"))
				rs.MoveNext()
			Loop
		Else
			MsgBox("لا توجد أصناف", MsgBoxStyle.Critical)
		End If

أتمنى يعمل معك لأني أكتبه خارج Visual Studio ولا أدري عن الإملاء!!

أخوك.

تم تعديل هذه المشاركة بواسطة Adel_N في 8 أكتوبر 2007 في 21:08

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#11

شكرا جزيلا والي الامام دائما

#12

العفو.

بالتوفيق.

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

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

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