السلام عليكم
كيفية البحث عن كلمة واظهار مجموع نتائج البحث عنها من قاعدة الببانات واظهار النتيجة على label
فيجوال بيسك 2010 قاعدة أكسس
بامكانك استعمال حلقة فور على الجدول لعد الكلمات في كل صف مثل هذا المثال
PHP كود :
Dim X As Integer
Dim M As MatchCollection
For C As Integer = 0 To T.Rows.Count - 1
M = Regex.Matches(T.Rows(C)(1), "محمد")
X += M.Count
Next
Label1.Text = X
---
وربما بعض الاخوة لدية طريقة افضل
بالعكس اخ سعود .... تعدد الطرق افضل من اجل نتعلم من بعض ربما تكون طريقتك مختصرة وافضل من طريقتي وبالتالي ساستخدمها لاحقا في برامجي .... ولكن ليت من يرفع الامثله يقوم بنسخ الكود ورفعه مع المشاركة بدل عنا التحميل واختلاف الاصدارات بين الفيجوال
انا الآن احادثك من الايباد وكسلان اروح للكمبيوتر من اجل رؤية المثال
(13-08-19, 03:39 AM)سامي محمد كتب : [ -> ]بامكانك استعمال حلقة فور على الجدول لعد الكلمات في كل صف مثل هذا المثال
PHP كود :
Dim X As Integer
Dim M As MatchCollection
For C As Integer = 0 To T.Rows.Count - 1
M = Regex.Matches(T.Rows(C)(1), "محمد")
X += M.Count
Next
Label1.Text = X
---
وربما بعض الاخوة لدية طريقة افضل
شكرا لك أخي سامي
بالنسبة لمثال وجدته ابسط من مثال الاخ سعود
لكن المشكلة حين تغيير المتغير أجد مشكلة في الخطأ الذي يظهر لي في الحلقة 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 C As Integer = 0 To DataGridView1.Rows.Count - 1
if not DataGridView1.Rows(C).isnewrow then
M = Regex.Matches(DataGridView1.Rows(C).cells(6).value, "ذكر")
X += M.Count
end if
Next
Label1.Text = X
اخي سعود اوافقك تماما بان الريجكس تستتخدم للوصول الى نص بدقة ولكن تعلم بان اللغة العربيه غير مدعومة في كافة لغات البرمجة .... قلي كيف تستطيع باي لغة تجاهل الهمزة في مثلا كلمة أحمد و احمد بغير الرجيكس وكذلك التشكيل .... اي نعم نستطيع تجاوز الهمزة في لغة sql ولكن في الاكسس لا بد من الرجكس لذلك ان استخدمها في عمليات البحث بشكل افتراضي
————-
وبالنسبة لمعرفة الصف الذي تقع فيه كلمة البحث فبالامكان الوصول اليه بعبارة Where اذا لم يكن النص مشكلا ..... ولكن الذي فهمته من سؤال الخ ان يريد عد الكلمات الموجودة في الصف وليس عد الصفوف
تعديل للكود الذي في مشاركتي السابقة بدون Regex هكذا
PHP كود :
Dim X As Integer
For C 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 = X
وتستطيع بالاستعلام الحصول على المطلوب هكذا
PHP كود :
SELECT COUNT(Column1) FROM TableName WHERE Column1='ذكر'
(13-08-19, 03:59 PM)سامي محمد كتب : [ -> ]اخي سعود اوافقك تماما بان الريجكس تستتخدم للوصول الى نص بدقة ولكن تعلم بان اللغة العربيه غير مدعومة في كافة لغات البرمجة .... قلي كيف تستطيع باي لغة تجاهل الهمزة في مثلا كلمة أحمد و احمد بغير الرجيكس وكذلك التشكيل .... اي نعم نستطيع تجاوز الهمزة في لغة sql ولكن في الاكسس لا بد من الرجكس لذلك ان استخدمها في عمليات البحث بشكل افتراضي
————-
وبالنسبة لمعرفة الصف الذي تقع فيه كلمة البحث فبالامكان الوصول اليه بعبارة Where اذا لم يكن النص مشكلا ..... ولكن الذي فهمته من سؤال الخ ان يريد عد الكلمات الموجودة في الصف وليس عد الصفوف
بالفعل أيها الاخ الكريم "سامي محمد" , وذلك أنني أود حساب عدد الكلمات في صف من صفوف قاعدة البيانات , واخراج قيمتها
الاخ المحترم سعود أشار الى ذلك , لكن مثاله لايصلح لحل السؤال الذي اشرت اليه , بل يحتاج الى تعديل ومن العمل عليه
, كما أنه يستخدم دوال كثيرة , لكن بالنسبة لكود سامي محمد استخدم حلقة تكرارية في دالة واحدة