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

نسخة كاملة : اظهار مجموع نتائج البحث عن كلمة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 
كيفية البحث عن كلمة واظهار مجموع نتائج البحث عنها من قاعدة الببانات واظهار النتيجة على label
فيجوال بيسك 2010 قاعدة أكسس
بامكانك استعمال حلقة فور على الجدول لعد الكلمات في كل صف مثل هذا المثال
 
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 
---
وربما بعض الاخوة لدية طريقة افضل
بالعكس اخ سعود .... تعدد الطرق افضل من اجل نتعلم من بعض ربما تكون طريقتك مختصرة وافضل من طريقتي وبالتالي ساستخدمها لاحقا في برامجي .... ولكن ليت من يرفع الامثله يقوم بنسخ الكود ورفعه مع المشاركة بدل عنا التحميل واختلاف الاصدارات بين الفيجوال

انا الآن احادثك من الايباد وكسلان اروح للكمبيوتر من اجل رؤية المثال
(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
لابد من التحديد بالخلية 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 
(13-08-19, 01:05 PM)سعود كتب : [ -> ]
إقتباس :بالنسبة لمثال وجدته ابسط من مثال الاخ سعود 
اخي الكريم انا لم اعرف كيفية  تحميلك للبيانات.
الـ Ado.net فيها مميزات عدة وكل حسب طريقته .
لو انك حددت بسؤالك طريقة معينة لوجدتني كتبت لك الكود المطلوب.
حسب معرفتي بالريجكس Regex هي مناسبة للنصوص المعقدة وليست لعدد صفوف بيانات حيث يمكن معرفتها بابسط الطرق.
لو انك عبأت البيانات من الجدول في DataTable وقت التشغيل فان الاستعلام يكون بابسط طريقة

أقدر جهودك ايها المحترم
اخي سعود اوافقك تماما بان الريجكس تستتخدم للوصول الى نص بدقة ولكن تعلم بان اللغة العربيه غير مدعومة في كافة لغات البرمجة .... قلي كيف تستطيع باي لغة تجاهل الهمزة في مثلا كلمة أحمد و احمد بغير الرجيكس وكذلك التشكيل .... اي نعم نستطيع تجاوز الهمزة في لغة sql ولكن في الاكسس لا بد من الرجكس لذلك ان استخدمها في عمليات البحث بشكل افتراضي
————-
وبالنسبة لمعرفة الصف الذي تقع فيه كلمة البحث فبالامكان الوصول اليه بعبارة Where اذا لم يكن النص مشكلا ..... ولكن الذي فهمته من سؤال الخ ان يريد عد الكلمات الموجودة في الصف وليس عد الصفوف
تعديل للكود الذي في مشاركتي السابقة بدون 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='ذكر' 
(13-08-19, 03:59 PM)سامي محمد كتب : [ -> ]اخي سعود اوافقك تماما بان الريجكس تستتخدم للوصول الى نص بدقة ولكن تعلم بان اللغة العربيه غير مدعومة في كافة لغات البرمجة .... قلي كيف تستطيع باي لغة تجاهل الهمزة في مثلا كلمة أحمد و احمد بغير الرجيكس وكذلك التشكيل .... اي نعم نستطيع تجاوز الهمزة في لغة sql  ولكن في الاكسس لا بد من الرجكس لذلك ان استخدمها في عمليات البحث بشكل افتراضي
————-
وبالنسبة لمعرفة الصف الذي تقع فيه كلمة البحث فبالامكان الوصول اليه بعبارة Where اذا لم يكن النص مشكلا ..... ولكن الذي فهمته من سؤال الخ ان يريد عد الكلمات الموجودة في الصف وليس عد الصفوف
بالفعل أيها الاخ الكريم "سامي محمد" , وذلك أنني أود حساب عدد الكلمات في صف من صفوف قاعدة البيانات , واخراج قيمتها 
الاخ المحترم سعود أشار الى ذلك , لكن مثاله لايصلح لحل السؤال الذي اشرت اليه , بل يحتاج الى تعديل ومن العمل عليه 
, كما أنه يستخدم دوال كثيرة , لكن بالنسبة لكود سامي محمد استخدم حلقة تكرارية في دالة واحدة