تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اظهار مجموع نتائج البحث عن كلمة
#1
السلام عليكم 
كيفية البحث عن كلمة واظهار مجموع نتائج البحث عنها من قاعدة الببانات واظهار النتيجة على label
فيجوال بيسك 2010 قاعدة أكسس
Angel  الحياة فترة اختبار , إما أن تكون او لاتكون  Rolleyes  
لن امل من البحث  ولن امل من السؤال
[b]رواد المعلوميات[/b]
الرد }}}
تم الشكر بواسطة:
#2
بامكانك استعمال حلقة فور على الجدول لعد الكلمات في كل صف مثل هذا المثال
 
PHP كود :
Dim X As Integer
        Dim M 
As MatchCollection
        
For As Integer 0 To T.Rows.Count 1
            M 
Regex.Matches(T.Rows(C)(1), "محمد")
            X += M.Count
        Next
        Label1
.Text 
---
وربما بعض الاخوة لدية طريقة افضل
الرد }}}
#3
بالعكس اخ سعود .... تعدد الطرق افضل من اجل نتعلم من بعض ربما تكون طريقتك مختصرة وافضل من طريقتي وبالتالي ساستخدمها لاحقا في برامجي .... ولكن ليت من يرفع الامثله يقوم بنسخ الكود ورفعه مع المشاركة بدل عنا التحميل واختلاف الاصدارات بين الفيجوال

انا الآن احادثك من الايباد وكسلان اروح للكمبيوتر من اجل رؤية المثال
الرد }}}
#4
(13-08-19, 03:39 AM)سامي محمد كتب : بامكانك استعمال حلقة فور على الجدول لعد الكلمات في كل صف مثل هذا المثال
 
PHP كود :
Dim X As Integer
        Dim M 
As MatchCollection
        
For As Integer 0 To T.Rows.Count 1
            M 
Regex.Matches(T.Rows(C)(1), "محمد")
            X += M.Count
        Next
        Label1
.Text 
---
وربما بعض الاخوة لدية طريقة افضل
شكرا لك أخي سامي 
بالنسبة لمثال وجدته ابسط من مثال الاخ سعود 
لكن المشكلة حين تغيير المتغير أجد مشكلة في الخطأ الذي يظهر لي في الحلقة for بالمتغير m
مع العلم أنني قمت ياستدعاء المكتبة 
Imports System.Text.RegularExpressions
Imports System.Windows.Forms.DataGridView
كود :
 Dim X As Integer
       Dim M As MatchCollection
       For C As Integer = 0 To DataGridView1.Rows.Count - 1
           M = Regex.Matches(DataGridView1.Rows(C)(6), "ذكر")
           X += M.Count
       Next
       Label1.Text = X
Angel  الحياة فترة اختبار , إما أن تكون او لاتكون  Rolleyes  
لن امل من البحث  ولن امل من السؤال
[b]رواد المعلوميات[/b]
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , سعود , asemshahen5
#5
لابد من التحديد بالخلية Cells إضافة إلى تجاهل السطر الجديد أسفل الداتاجريدفيو لتفادي الخطأ هكذا
PHP كود :
Dim X As Integer
       Dim M 
As MatchCollection
       
For As Integer 0 To DataGridView1.Rows.Count 1
           
if not DataGridView1.Rows(C).isnewrow then
           M 
Regex.Matches(DataGridView1.Rows(C).cells(6).value"ذكر")
            
+= M.Count
           end 
if
       
Next
       Label1
.Text 
الرد }}}
#6
(13-08-19, 01:05 PM)سعود كتب :
إقتباس :بالنسبة لمثال وجدته ابسط من مثال الاخ سعود 
اخي الكريم انا لم اعرف كيفية  تحميلك للبيانات.
الـ Ado.net فيها مميزات عدة وكل حسب طريقته .
لو انك حددت بسؤالك طريقة معينة لوجدتني كتبت لك الكود المطلوب.
حسب معرفتي بالريجكس Regex هي مناسبة للنصوص المعقدة وليست لعدد صفوف بيانات حيث يمكن معرفتها بابسط الطرق.
لو انك عبأت البيانات من الجدول في DataTable وقت التشغيل فان الاستعلام يكون بابسط طريقة

أقدر جهودك ايها المحترم
Angel  الحياة فترة اختبار , إما أن تكون او لاتكون  Rolleyes  
لن امل من البحث  ولن امل من السؤال
[b]رواد المعلوميات[/b]
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#7
اخي سعود اوافقك تماما بان الريجكس تستتخدم للوصول الى نص بدقة ولكن تعلم بان اللغة العربيه غير مدعومة في كافة لغات البرمجة .... قلي كيف تستطيع باي لغة تجاهل الهمزة في مثلا كلمة أحمد و احمد بغير الرجيكس وكذلك التشكيل .... اي نعم نستطيع تجاوز الهمزة في لغة sql ولكن في الاكسس لا بد من الرجكس لذلك ان استخدمها في عمليات البحث بشكل افتراضي
————-
وبالنسبة لمعرفة الصف الذي تقع فيه كلمة البحث فبالامكان الوصول اليه بعبارة Where اذا لم يكن النص مشكلا ..... ولكن الذي فهمته من سؤال الخ ان يريد عد الكلمات الموجودة في الصف وليس عد الصفوف
الرد }}}
تم الشكر بواسطة: الرائد , سعود , ابراهيم ايبو
#8
تعديل للكود الذي في مشاركتي السابقة بدون Regex هكذا
PHP كود :
Dim X As Integer
       
For As Integer 0 To DataGridView1.Rows.Count 1
           
if not DataGridView1.Rows(C).isnewrow then exit for
 
          if DataGridView1.Rows(C).cells(6).value"ذكر" then      X += 1
       Next
       Label1
.Text 
وتستطيع بالاستعلام الحصول على المطلوب هكذا
PHP كود :
SELECT COUNT(Column1FROM TableName WHERE Column1='ذكر' 
الرد }}}
تم الشكر بواسطة: الرائد , سعود , ابراهيم ايبو , asemshahen5
#9
(13-08-19, 03:59 PM)سامي محمد كتب : اخي سعود اوافقك تماما بان الريجكس تستتخدم للوصول الى نص بدقة ولكن تعلم بان اللغة العربيه غير مدعومة في كافة لغات البرمجة .... قلي كيف تستطيع باي لغة تجاهل الهمزة في مثلا كلمة أحمد و احمد بغير الرجيكس وكذلك التشكيل .... اي نعم نستطيع تجاوز الهمزة في لغة sql  ولكن في الاكسس لا بد من الرجكس لذلك ان استخدمها في عمليات البحث بشكل افتراضي
————-
وبالنسبة لمعرفة الصف الذي تقع فيه كلمة البحث فبالامكان الوصول اليه بعبارة Where اذا لم يكن النص مشكلا ..... ولكن الذي فهمته من سؤال الخ ان يريد عد الكلمات الموجودة في الصف وليس عد الصفوف
بالفعل أيها الاخ الكريم "سامي محمد" , وذلك أنني أود حساب عدد الكلمات في صف من صفوف قاعدة البيانات , واخراج قيمتها 
الاخ المحترم سعود أشار الى ذلك , لكن مثاله لايصلح لحل السؤال الذي اشرت اليه , بل يحتاج الى تعديل ومن العمل عليه 
, كما أنه يستخدم دوال كثيرة , لكن بالنسبة لكود سامي محمد استخدم حلقة تكرارية في دالة واحدة
Angel  الحياة فترة اختبار , إما أن تكون او لاتكون  Rolleyes  
لن امل من البحث  ولن امل من السؤال
[b]رواد المعلوميات[/b]
الرد }}}
تم الشكر بواسطة: سعود , ابراهيم ايبو , asemshahen5



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم