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

ما العيب في جملة select

بدأه aboumazen في 18 أكتوبر 2012 · 3 رد · 921 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

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

الغريب في الامر انه يعلم في الاكسس لكنه لا يعمل في البرنامج

هو يعمل في الاكسس هكذا

SELECT *
FROM TabFacture
WHERE (((TabFacture.Mois)=[?]) AND ((TabFacture.Etat_De_Paye)=No));

ولكي يتناسب مع برنامجي تتم عطاء البرامتر قيمة من combobox

فاصبح الكود هكذا

" SELECT * FROM TabFacture WHERE (((TabFacture.Mois)= "& combomois.text & " ) AND ((TabFacture.Etat_De_Paye)=No))"

ولم يعمل فقررت اعضاء قيمة البرامتر مباشرة لكن لم تعمل في البرنامج رغم انها تعمل في access

و استعملت هذا الكود

SELECT * FROM TabFacture WHERE (((TabFacture.Mois)= " فبراير " ) AND ((TabFacture.Etat_De_Paye)=No))"

و هذا الكود في البرنامج

الفورم فيه datagridview واسمها GridGharama

و combobox واحد و اسمه comboMois

الجدول اسمه TabFacture

	Try
        	If ComboMois.SelectedIndex = 0 Then
            	Dim SQLstr As String = " SELECT * FROM TabFacture WHERE (((TabFacture.Mois)= "فبراير " ) AND ((TabFacture.Etat_De_Paye)=No))"

            	Open_Con()
            	Dim DataAdapter1 As New OleDbDataAdapter(SQLstr, Con)
            	DataAdapter1.Fill(ds, "TabFacture")
            	Close_Con()
            	GridGharama.DataSource = ds
            	GridGharama.DataMember = "TabFacture"
        	End If
    	Catch ex As Exception
        	MsgBox(ex.Message)
    	End Try
#2
" SELECT * FROM TabFacture WHERE (((TabFacture.Mois)= "& combomois.text & " ) AND ((TabFacture.Etat_De_Paye)=No))"

اللي أنا فهمته من الكود إن المفروض TabFacture.Mois عمود string يعني المفروض تبقي كلمة البحث بين علامتي ' '

يعني هتبقي بالشكل دا

" SELECT * FROM TabFacture WHERE (((TabFacture.Mois)= '"& combomois.text & "' ) AND ((TabFacture.Etat_De_Paye)=No))"

لو في خطأ بالنسبة للقيمة التانية وهي TabFacture.Etat_De_Paye اللي أنا فهمته من الكود إنه عمود Boolean يعني true or false لو جرب

TabFacture.Etat_De_Paye)=0

انا لا أتعامل مع أكسس

في حاجة تانية غريبة هي الأعمدة ليه بين الأقواس يعني (TabFacture.Mois) ليه طب خليها كدا علي طول 'فبراير' = TabFacture.Mois

تم تعديل هذه المشاركة بواسطة Principle في 20 أكتوبر 2012 في 07:21

#3
aboumazen كتب:

SELECT *
FROM TabFacture
WHERE (((TabFacture.Mois)=[?]) AND ((TabFacture.Etat_De_Paye)=No));

جرب بدل =No الى = 0

SELECT *
FROM TabFacture
WHERE (((TabFacture.Mois)=[?]) AND ((TabFacture.Etat_De_Paye)=0));
#4

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

لندمج كود الاخ سمير ابراهيم والاخ Principle ليكون كالاتي

"SELECT * FROM TabFacture WHERE Mois='" & combomois.text & "' AND  Etat_De_Paye=0;"

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