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

عندما أريد قيمة ValueMember لعنصر في قائمة Listbox في متغير

مغلق
بدأه إحساس لغة برمجة في 19 يناير 2007 · 6 رد · 1,095 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الأعزاء

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

أريد إسناد قيمة SelectedValue لعنصر في قائمة ListBox1 إلى متغير من نوع integer ؟

الكود التالي لم يعمل بالشكل المطلوب

Public Class Form1
	Dim adpa As New OleDb.OleDbDataAdapter
	Dim dsa As New DataSet
	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Try
			If CON.State = ConnectionState.Closed Then
				CON.Open()
			End If
			adpa = New OleDb.OleDbDataAdapter("select * from area", CON)
			dsa = New DataSet
			adpa.Fill(dsa, "area")
			If dsa.Tables("area").Rows.Count > 0 Then
				ListBox1.DataSource = dsa.Tables("area")
				ListBox1.DisplayMember = "name_area"
				ListBox1.ValueMember = "no_area"
				ListBox1.SelectedItem = 0
				CON.Close()


			End If
			If CON.State = ConnectionState.Open Then
				CON.Close()
			End If
		Catch

		End Try

	End Sub

	Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
		'لا أريدها هكذا أريدها في متغير
		'TextBox1.Text = ListBox1.SelectedValue.ToString

		' هنا تظهر المشكلة
		Dim x As Integer
		x = CInt(ListBox1.SelectedValue)
		TextBox1.Text = x

	End Sub
End Class

المشكلة واضحة في الملف المرفق

test.zip

#2

فقط غير الجزء الأخير من الكود كي يصبح كما يلي ..

		Dim x As String
		x = ListBox1.Text
		TextBox1.Text = x

ملاحظة : لست بحاجة إلى كتابة ..

			If CON.State = ConnectionState.Closed Then
				CON.Open()
			End If
'''''''''''''''''
			If CON.State = ConnectionState.Open Then
				CON.Close()
			End If

لان DataAdapter يقوم بذلك بشكل تلقائي في الوضع المنفصل ..

تم تعديل هذه المشاركة بواسطة yaseralshikh في 20 يناير 2007 في 17:54

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#3

عفوا

أريدها في متغير رقمي integer لأنها رقم

وليس الهدف أن أضعها في صندوق النص و لكن لإستخدامها برمجيا في حسابات أخرى في برنامج آخر أعمل علية

أرجو أن تكون فهمت قصدي

و ألف شكر على ردك

بإنتظار ردك أخي yaseralshikh أو أي عضو آخر

ملاحظة أخرى

لا أريد النص الموجود في القائمة كما إتضح لي من رد الأخ ياسر

ولكني أريد قيمتة في قاعدة البيانات أي الحقل المعرف في الخاصية ListBox1.ValueMember

أرجو أن يكون سؤالي واضحا

بإنتظار الإجابة

#4

السلام عليكم ...

أخي العزيز ..

المشكلة بسيطة عندك .... المشكلة تقنية (برمجية) بحتة وهي أنك هنا تتعامل مع dataRowView وليس متغير يعني حينما نتعامل مع متغير علينا أن نسنده إلى قيمته وهي كالتالي

 Dim x As Integer
		x = Val(ListBox1.SelectedValue.ToString)
		TextBox1.Text = x

شيء أخر أنت وقعت به أخي الكريم وهو لماذا أنت وضعت cint فهذه الدالة خاصة بعملية التحويل وأنت هنا لا تحتاج إلى تحويل ... أنت بحاجة إلى أخذ قيمة العنصر المختار SelectedValue يعني هذه تتعلق بالمصفوفات فأنت أن أردت أن ستسخدم فعليك باستخدام الدالة Val فهي هنا تأخذ قيمة العنصر الذي نختاره من ListBox

وهنا أستخدمناها لكي تحول لنا string إلى قيمة ....

وهذا مثال قد حصلت عليه MSDN

STORE '12' TO A
STORE '13' TO B
? VAL(A) + VAL(B)  && Displays 25.00
STORE '1.25E3' TO C
? 2 * VAL(C)  && Displays 2500.00

أرجوو أن أكون قد وصلت أليك ما هو مطلوب ...

التعديل على المثال في المرفقات

والسلام خير ختااام

TestUpdate.zip

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

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#5

أخي إحساس لغة برمجة ..

لو كنت تريد الـ ListBox تنتقل مباشرة لقيمة معينة في القائمة أستبدل SelectedItem بـ SelectedIndex

تم تعديل هذه المشاركة بواسطة yaseralshikh في 21 يناير 2007 في 22:39

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#6

شكرا جزيلا الأخ فلسطيننا

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

شكرا شكرا شكرا من كل قلبي

أيضا شكر للأخ yaseralshikh

الذي لم يفهم قصدي حتى الآن

#7
اقتباس
أيضا شكر للأخ yaseralshikh

الذي لم يفهم قصدي حتى الآن

لست أعلم إن كانت هذه هي طريقتك في شكري ، على كل لا شكر على واجب ..

أنا فهمت قصدك تماماً ، واخي فلسطيننا سبقني في ذلك ، ولكني أحببت أن اضيف معلومة لاأخواننا ممن يتابعون هذه المشاركة ، بخصوص لو ارادنا الانتقال مباشرة إلى قيمة معينة في القائمة الموجودة في الـ ListBox فإننا نستخدم SelectedIndex . لأني لاحظت في مثالك أنك تستخدم SelectedItem بدلاً من SelectedIndex . هذا والله الموفق .

تم تعديل هذه المشاركة بواسطة yaseralshikh في 2 فبراير 2007 في 05:20

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…