تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] كود البحث بالاسم
#1
السلام عليكم

ماهو الخطا في كود البحث بالاسم سواً يكون الاسم بالهمزه او بدون   الخ

مرفق لكم الكود والمشروع
كود :
'الكود منقول من مشاركة الأستاذ حريف برمجة
           For Each s As String In textSerch.Text
               s = Regex.Replace(s, "[أإآا]", "[أإآا]")
               s = Regex.Replace(s, "[هة]", "[هة]")
               s = Regex.Replace(s, "[ىي]", "[ىي]")
               s = Regex.Replace(s, "[وؤ]", "[وؤ]")

               Dim txt As String
               txt &= s
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.


الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

عندك أكثر من مشكلة :

- مشكلة في مكان تعريف المتغير ومجاله.
- مشكلة في التعويض، وعما تبحث.
- مشكلة بحلقة الدوران.

لن أشير إلى مكان الخطأ بالتحديد، 
ولكن دقق بين الكودين وستصل لمكان وسبب هذه الأخطاء ولن تنسى هذه الملاحظة أبداً.

الكود : 

كود :
dt.Clear()
Label1.Hide()

Dim txt As String = ""

'الكود منقول من مشاركة الأستاذ حريف برمجة
For Each s As String In textSerch.Text
   s = Regex.Replace(s, "[أإآا]", "[أإآا]")
   s = Regex.Replace(s, "[هة]", "[هة]")
   s = Regex.Replace(s, "[ىي]", "[ىي]")
   s = Regex.Replace(s, "[وؤ]", "[وؤ]")

   txt &= s

   If textSerch.Text.Trim = "" Then Label1.Visible = False : Exit Sub
   If textSerch.Text.Trim.Length < 3 Then
       Label1.Visible = True
       Exit Sub
   End If


   dt.Clear()
   Label1.Hide()
   If textSerch.Text.Trim.Length >= 3 Then
       da.SelectCommand.Parameters.Clear()
       da.SelectCommand.Parameters.AddWithValue("@c", "%" & txt.Trim & "%")
       da.Fill(dt)
       DataGridView1.DataSource = dt
       DataGridView1.ClearSelection()
       If dt.Rows.Count = 0 Then Label1.Show()
   End If
   If textSerch.Text = "" Then
       Label2.Show()
   Else
       Label2.Hide()
   End If
Next


بالتوفيق ..

ملاحظة : كود مميز جداً، لو كان لديك بعض الوقت، نتمنى أن تصنع مثال للبحث به وتشمل كل الحالات وترفقه كمرجع لطلاب العلم في هذا المنتدى..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: أبووسم , asmarsou , asmarsou , محمد مسافر
#3
ان شاء الله

تم تصحيح الكود واصبح شغال كالاتي

كود :
dt.Clear()
       Label1.Hide()

       Dim txt As String = ""

       For Each s As Char In textSerch.Text
           If s = "أ" Or s = "إ" Or s = "آ" Or s = "ا" Then
               txt &= "[أإآا]"
           ElseIf s = "ه" Or s = "ة" Then
               txt &= "[هة]"
           ElseIf s = "ى" Or s = "ي" Then
               txt &= "[ىي]"
           ElseIf s = "و" Or s = "ؤ" Then
               txt &= "[وؤ]"
           Else
               txt &= s
           End If
       Next

       If textSerch.Text.Trim = "" Then
           Label1.Visible = False
           Exit Sub
       End If

       If textSerch.Text.Trim.Length < 3 Then
           Label1.Visible = True
           Exit Sub
       End If

       da.SelectCommand.Parameters.Clear()
       da.SelectCommand.Parameters.AddWithValue("@c", "%" & txt.Trim & "%")
       da.Fill(dt)
       DataGridView1.DataSource = Nothing
       DataGridView1.DataSource = dt
       DataGridView1.ClearSelection()

       If dt.Rows.Count = 0 Then
           Label1.Show()
       End If

       If textSerch.Text = "" Then
           Label2.Show()
       Else
           Label2.Hide()
       End If
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.


الرد }}}
تم الشكر بواسطة:
#4
الكود الذي أرفقته هو الكود بعد التصحيح..

والكود الذي وضعته أنت كتصحيح للكود :

يحتوي على خطأ بالتعويض ... لن يعمل معك في كل الحالات،
ربما يعمل معك هنا بسبب For Each ولكن ان استخدمته في موضع آخر بما سيظهر الخطأ.. 
ولن تحصل على ما ترجوه من حل، فتظن أنك كتبت كوداً صحيحاً.

ليس المهم أن يعمل الكود، المهم أن تعرف كيف تقرأ الكود وكأنك أنت المترجم(Compiler) الذي سينفذ الكود..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: محمد مسافر
#5
حاولت على الكود السابق الذي ظهر لي الخطا ولم اعرف سوف احاول ان اجد الخطاء وهو الكود الافضل لي وان لم اعرف نتمنى الافاده لمن عنده المعرفه ، شكراُ استاذ/ طه.
اللهمّ بعلمك الغيب وقدرتك على الخلق، أحييني ما علمت الحياة خيراً لي، وتوفّني ما علمت الوفاة خيراً لي.


الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] استفسار بخصوص البحث في RichTextBox SerialPort dubai.eig 2 662 18-06-25, 11:09 AM
آخر رد: dubai.eig
Rainbow [كود] البحث تلقائياً عند التبديل بين الـ RadioButton محمد مسافر 8 693 04-10-24, 02:33 AM
آخر رد: Taha Okla
Rainbow [كود] البحث وتحريك اسهم الداتا جريدفيو عند البحث محمد مسافر 2 580 19-09-24, 01:14 AM
آخر رد: محمد مسافر
  مساعدة البحث بين تاريخين أبووسم 3 544 16-08-24, 01:37 PM
آخر رد: أبووسم
  البحث بالأسم الأول فقط heem1986 6 630 03-08-24, 04:17 PM
آخر رد: heem1986
  [VB.NET] تجاهل التشكيل من الأسماء عند البحث في التيكست بوكس Khalil chiha 3 529 01-08-24, 10:28 PM
آخر رد: Khalil chiha
  يوجد خطاء فى كود البحث بواستطة الكمبوبوكس واجراء مخزن new_programer 4 402 06-07-24, 12:05 AM
آخر رد: Zuhare
  البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم moh61 3 603 12-06-24, 08:00 PM
آخر رد: Taha Okla
  أريد البحث بإستخدام أي جزء من الكلمة و ليس أول جزء منها . CoderMM 3 604 17-04-24, 01:19 AM
آخر رد: Taha Okla
  [VB.NET] البحث باستخدام CheckedListBox لتكون نتيجة التحديد شرط لجملة الاستعلام ahmedramzyaish 0 435 19-02-24, 03:44 AM
آخر رد: ahmedramzyaish

التنقل السريع :


يقوم بقرائة الموضوع: