منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ما الخطأ فى هذا الكود - كود البحث المتعدد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كود :
DA1 = New OleDbDataAdapter("SELECT * FROM [TbName] WHERE
                                            [Name] LIKE '%" & TName.Text & "%'
                                         Or [FamousName] LIKE '%" & TFamousName.Text & "%'
                                         Or [MotherName] LIKE '%" & TMotherName.Text & "%'
                                         Or [Jobs] LIKE '%" & TJobs.Text & "%'
                                         Or [Plag] LIKE '%" & TPlag.Text & "%'
                                         Or [Address] LIKE '%" & TAddress.Text & "%'  
                                         Or [InternationalID] LIKE '%" & TInternationalID.Text & "%'  
                                         Or [AccType] LIKE '%" & ComboBox1.Text & "%'
                                         Or [SpeciaM] LIKE '%" & TSpecialM.Text & "%'  
                                         Or [IDCard] LIKE %" & TIDCard.Text & "% ", CN1)

        DA1.Fill(DT)
        DGV1.DataSource = DT
(27-12-23, 02:04 PM)Ashraf Elafify كتب : [ -> ]
كود :
 DA1 = New OleDbDataAdapter("SELECT * FROM [TbName] WHERE
                                           [Name] LIKE '%" & TName.Text & "%'
                                        Or [FamousName] LIKE '%" & TFamousName.Text & "%'
                                        Or [MotherName] LIKE '%" & TMotherName.Text & "%'
                                        Or [Jobs] LIKE '%" & TJobs.Text & "%'
                                        Or [Plag] LIKE '%" & TPlag.Text & "%'
                                        Or [Address] LIKE '%" & TAddress.Text & "%'  
                                        Or [InternationalID] LIKE '%" & TInternationalID.Text & "%'  
                                        Or [AccType] LIKE '%" & ComboBox1.Text & "%'
                                        Or [SpeciaM] LIKE '%" & TSpecialM.Text & "%'  
                                        Or [IDCard] LIKE %" & TIDCard.Text & "% ", CN1)

       DA1.Fill(DT)
       DGV1.DataSource = DT
PHP كود :
Dim query As String "SELECT * FROM [TbName] WHERE " &
 
   "[Name] LIKE ? OR " &
 
   "[FamousName] LIKE ? OR " &
 
   "[MotherName] LIKE ? OR " &
 
   "[Jobs] LIKE ? OR " &
 
   "[Plag] LIKE ? OR " &
 
   "[Address] LIKE ? OR " &
 
   "[InternationalID] LIKE ? OR " &
 
   "[AccType] LIKE ? OR " &
 
   "[SpeciaM] LIKE ? OR " &
 
   "[IDCard] LIKE ?"

DA1 = New OleDbDataAdapter(queryCN1)

' تعيين قيم المعلمات
DA1.SelectCommand.Parameters.AddWithValue("param1", "%" & TName.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param2", "%" & TFamousName.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param3", "%" & TMotherName.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param4", "%" & TJobs.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param5", "%" & TPlag.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param6", "%" & TAddress.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param7", "%" & TInternationalID.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param8", "%" & ComboBox1.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param9", "%" & TSpecialM.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param10", "%" & TIDCard.Text & "%")

DA1.Fill(DT)
DGV1.DataSource = DT 
(27-12-23, 02:14 PM)تركي الحلواني كتب : [ -> ]
(27-12-23, 02:04 PM)Ashraf Elafify كتب : [ -> ]
كود :
 DA1 = New OleDbDataAdapter("SELECT * FROM [TbName] WHERE
                                           [Name] LIKE '%" & TName.Text & "%'
                                        Or [FamousName] LIKE '%" & TFamousName.Text & "%'
                                        Or [MotherName] LIKE '%" & TMotherName.Text & "%'
                                        Or [Jobs] LIKE '%" & TJobs.Text & "%'
                                        Or [Plag] LIKE '%" & TPlag.Text & "%'
                                        Or [Address] LIKE '%" & TAddress.Text & "%'  
                                        Or [InternationalID] LIKE '%" & TInternationalID.Text & "%'  
                                        Or [AccType] LIKE '%" & ComboBox1.Text & "%'
                                        Or [SpeciaM] LIKE '%" & TSpecialM.Text & "%'  
                                        Or [IDCard] LIKE %" & TIDCard.Text & "% ", CN1)

       DA1.Fill(DT)
       DGV1.DataSource = DT
PHP كود :
Dim query As String "SELECT * FROM [TbName] WHERE " &
 
   "[Name] LIKE ? OR " &
 
   "[FamousName] LIKE ? OR " &
 
   "[MotherName] LIKE ? OR " &
 
   "[Jobs] LIKE ? OR " &
 
   "[Plag] LIKE ? OR " &
 
   "[Address] LIKE ? OR " &
 
   "[InternationalID] LIKE ? OR " &
 
   "[AccType] LIKE ? OR " &
 
   "[SpeciaM] LIKE ? OR " &
 
   "[IDCard] LIKE ?"

DA1 = New OleDbDataAdapter(queryCN1)

' تعيين قيم المعلمات
DA1.SelectCommand.Parameters.AddWithValue("param1", "%" & TName.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param2", "%" & TFamousName.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param3", "%" & TMotherName.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param4", "%" & TJobs.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param5", "%" & TPlag.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param6", "%" & TAddress.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param7", "%" & TInternationalID.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param8", "%" & ComboBox1.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param9", "%" & TSpecialM.Text & "%")
DA1.SelectCommand.Parameters.AddWithValue("param10", "%" & TIDCard.Text & "%")

DA1.Fill(DT)
DGV1.DataSource = DT 


شكرا أخى الكريم على سرعه الرد وجزاكم الله خيرا

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

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

ربما الخطأ في كودك في الحقل الأخير  : هل نوع الحقل في قاعدة البيانات رقمي (اذا كان رقمي فالكود صحيح)
وإن كان نوع الحق نصي فعليك إضافة إشارة تنصيص منفردة قبل وبعد الإشارة المئوية قبل وبعد مربع النص..


بينما كود البحث المتعدد أن تجعل جميع الحقول تبحث عن نتيجة موجودة في مربع نص واحد فقط ..
وليس الحقل الأول في المربع الأول  والثاني في المربع الثاني  ....إلخ.


وتستطيع تطوير الكود مع الريجكس ليعطيك نتائج تقريبة عن كل ما يخطر ببال من يبحث..
فكلمة واحد مثل اسم يوسف باللاتيني لها أكثر من عشر أشكال للكتابة (بحسب الجنسيات وحسب مزاج موظف تسجيل القيد المدني كيف بيظهر معاه اللفظ)
فمش معقول يبحث عن كل شكل من هذه الأشكال كل مرة على حدا ...
من أجل هذا (تحتاج أن تتعرف على الريجكس واستخداماتها)
معذرة أخى الكريم فأنا منتقل جديد من الفيجوال بيسك 6 الى الفيجوال دوت نت

وللأسف هناك اختلافات كثيرة



(27-12-23, 03:22 PM)Taha Okla كتب : [ -> ]هذا ليس كود بحث متعدد هذا أكثر ما يقال عنه بحث عن أي شيء في أي شيء (Any)
فإذا كان هناك خطأ في أحد مربعات البحث سيعطي رسالة خطأ ..

ربما الخطأ في كودك في الحقل الأخير  : هل نوع الحقل في قاعدة البيانات رقمي (اذا كان رقمي فالكود صحيح)
وإن كان نوع الحق نصي فعليك إضافة إشارة تنصيص منفردة قبل وبعد الإشارة المئوية قبل وبعد مربع النص..


بينما كود البحث المتعدد أن تجعل جميع الحقول تبحث عن نتيجة موجودة في مربع نص واحد فقط ..
وليس الحقل الأول في المربع الأول  والثاني في المربع الثاني  ....إلخ.


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

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


(27-12-23, 02:59 PM)تركي الحلواني كتب : [ -> ]ارفق مثال ليتم التعديل

مع شرح المطلوب

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

فى المرفقات توجد الفورم التى اريد ان اقوم بالبحث عن القيم المدخله فى التكست بكوكس و فى حال نواجد جميع القيم تظهر فى الجدول فى الاسفل

وفى حاله عدم تواجد جميع الشروط لا يعطى نتيجه
وفى حاله اذا ترك المستخدم اى من التكست بوكس فارغه اريده ان يبحث فى القيم الموجوده فقط
بعنى لو ادخل قيمتين فقط يبحث بهما

واذا اعطى خمس قيم يبحث بهما ويتجاهل الثلاثه الباقيين


وشكر لكم و أسف على الاطاله
PHP كود :
DT.Clear()
 
       Dim query As String "SELECT * FROM [MTable] WHERE [Name] LIKE @param1 and [FamousName] LIKE @param2 and [MotherName] LIKE @param3 and [Plag] LIKE @param4 and [Address] LIKE @param5 and [InternationalID] LIKE @param6 and [AccType] LIKE @param7 and [IDCard] LIKE @param8"
 
       DA1 = New OleDbDataAdapter(queryCN)
 
       DA1.SelectCommand.Parameters.AddWithValue("@param1""%" TName.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param2""%" TFamousName.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param3""%" TMotherName.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param4""%" TAddress.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param5""%" TInternationalID.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param6""%" TextBox4.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param7""%" TextBox6.Text "%")
 
       DA1.SelectCommand.Parameters.AddWithValue("@param8""%" TIDCard.Text "%")
 
       DA1.Fill(DT)
 
       DGV1.DataSource DT 

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

هذا تمام ما كنت اريد

وشكرا جزيلا على المساعدة Heart