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

مشكلة عند البحث في ال DataGridView

مغلق
بدأه فوضويّ بالفطرة في 27 مارس 2007 · 1 رد · 926 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

:lol: أعتقد انه راح تعطوني Banned من المنتدى بسبب كثرة أسئلتي ,,

ملاحظة : أنا أستخدم بيئة التطوير Visual Basic.NET 2005 وقواعد بيانات MS Access 2003

حبايبي عملت أكثر من TextBox للبحث في ال DataGridView وعملت زر لإجراء عملية البحث

هذا هو الكود :

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles search.Click
		ExecutionsBindingSource.Filter = "profile_id = '" + profile_id.Text + "'"
		ExecutionsBindingSource.Filter = "order_no = '" + order_no.Text + "'"
		ExecutionsBindingSource.Filter = "order_date = '" + order_date.Text + "'"
	End Sub

في تجربتي الأولى إستخدمت عامل بحث واحد وكان : profile_id وهو من النوع String

بعد نجاح التجربة قررت أن أضيف بقية خصائص البحث التي أريد ..

وضهر لي خطأ في order_no وهذا هو نص رسالة الخطأ :

{"Cannot perform '=' operation on System.DateTime and System.String."}

post-105645-1174985027_thumb.gif

ماهو سبب ظهور رسالة الخطأ ؟

الأمر الآخر ,, أريد أن أتأكد من أن المستخدم قام بتغيير قيمت ال DateTimePicker .. وإذا قام المستخدم بتغييرها حينها فقط نستخدم التاريخ كمعيار بحث ,, ماهي الجملة الشرطية التى من خلالها أتأكد من أن المستخدم قام بتغيير القيمة .. لأنه يكون لها قيمة إفتراضية وليست NULL

:) وجزاكم الله خير مقدماً

تم تعديل هذه المشاركة بواسطة فوضويّ بالفطرة في 27 مارس 2007 في 12:16

#2

سبحان الله ..

من دقيقة بس وانا ارد على سؤال لك عن استخدام Like بدلا من =

ولكن شاء الله اني أجاوبك على نفس السؤال مرتين ..

وقبل ما أجاوبك تأكد انه اسئلتك راح يستفيد منها الكل ،، والكل ينتظر منك المزيد ،، ويعطيك العافية ..

الحالة الأولى :

من الواضح انك بتستخدم = في جميع الاستعلامات عندك ولكن راح تواجه اخطاء بالذات في حالة التعامل مع DateTime

وعشان تتفادى هذي المشكلة /

* في حالة التعامل مع أرقام ممكن تستخدم = بدون علامات

ExecutionsBindingSource.Filter = "profile_id = " & profile_id.Text

* في حالة التعامل مع نصوص دائما استخدم LIke

ExecutionsBindingSource.Filter = "profile_id Like '" & profile_id.Text  & "'"

واضافة لذلك ممكن تستخدم % عشان تستعلم عن جزء من النص :

ExecutionsBindingSource.Filter = "profile_id Like '%" & profile_id.Text  & "%'"

* في حالة التعامل مع Date استخدم = مع علامات # :

  ExecutionsBindingSource.Filter = "profile_id = #" & profile_id.Text  & "#"

ملاحظة لا تستخدم + مع النصوص دوما ، انما استبدلها بـ &

أما السؤال الثاني أرجو أن يجاوبوك الشباب عليه ..

تم تعديل هذه المشاركة بواسطة Scoool في 27 مارس 2007 في 14:24

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

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