![]() |
|
معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : معرفة عدد مرات تكرار الاسم في الداتاقريدفيو (/showthread.php?tid=47877) |
معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - صالح عبدالله - 03-02-24 السلام عليكم ورحمة الله وبركاته يوجد لدي datagridview1 وبها عدد 20 عمود والعمود رقم 12 يحتوي على الأسماء وأغلبها مكرر سؤالي كيف أقوم بنقل الأسماء إلى datagridview2 وهي خالية من البيانات تحتوي على عمودين فقط الاسم وعدد مرات التكرار علماً أنني استخدمت الكود التالي وبالفعل يقوم بنقل الاسماء الى العمود الأول بدون تكرار datagridview2 ولكن في العمود الثاني يظهر لي عدد مرات التكرار 0 جزاكم الله خير Private Function foundcount(ByVal t As String, d As DataGridView) As Integer
Dim fc As Integer = 0
Dim rowscount As Integer = d.Rows.Count - IIf(d.AllowUserToAddRows, 2, 1)
For i As Integer = 0 To rowscount
Dim m As String = d.Rows(i).Cells(0).Value
If m.ToString.ToLower = t.ToString.ToLower Then
fc += 1
End If
Next
Return fc
End Function
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If dg.Rows.Count = 0 Then Exit Sub
Dim rowscount As Integer = dg.Rows.Count - IIf(dg.AllowUserToAddRows, 2, 1)
For i As Integer = 0 To rowscount
Dim tn As String = dg.Rows(i).Cells(0).Value
Dim f As Integer = foundcount(tn.ToString.ToLower, dg)
Dim found As Integer = foundcount(tn, d2)
If found = 0 Then
d2.Rows.Add(tn.ToString.ToLower, f)
End If
Next
End Sub
شكراً من الأعماق استاذ عاصم والله فرجت عني هم كبير وجعل هذا العمل في ميزان حسناتك جالس أحاول من 10 ساعات والمشكلة لم تحل الا بجوابك السريع ما شاء الله تبارك الله ولكن هذا جعلني أطمع في كرمك بسؤال آخر في نفس الموضوع حيث يوجد في العمود رقم 13 اسم الشركة التي ينتمي لها الشخض كيف اقوم بإضافة اسم الشركة في العمود 3 في datagridview2 أكرر أسفي لكثرة الأسئلة ولكنني جديد في البرمجة ولكم خالص تحياتي RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - تركي الحلواني - 04-02-24 (03-02-24, 04:14 PM)صالح عبدالله كتب : السلام عليكم ورحمة الله وبركاته جرب هذا الكود PHP كود : Private Sub MoveNamesToDataGridView2()وفي الزر ضع PHP كود : MoveNamesToDataGridView2() RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - صالح عبدالله - 05-02-24 السلام عليكم ورحمة الله وبركاته يعطيك العافية استاذ تركي الكود يعمل 100 \ 100 بارك الله فيك عندي سؤال أخير لو سمحت وأعتذر لكثرة الأسئلة وهو في نفس الموضوع حيث يوجد في العمود رقم 13 اسم الشركة التي ينتمي لها الشخض كيف اقوم بإضافة اسم الشركة في العمود 3 في datagridview2 RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - Taha Okla - 05-02-24 الحل كان موجود في مشاركة الأخ المتميز (عاصم): الكود الذي شارك به الأخ عاصم مع تعديل بسيط عليه (لا تنسى التعديل على أسماء الأعمدة كي تصل للحل في مشروعك): كود : Dim dt As DataTable = New DataTable()RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - صالح عبدالله - 05-02-24 السلام عليكم ورحمة الله وبركاته كلامك صحيح أستاذ طه إجابة الاستاذ عاصم والاستاذ تركي كلاهما صحيحتان وتؤدي نفس والله يبارك لهما وجزاهما الله كل خير على المجهود الذي يبذلانه ولكن كما يظهر في المشاركة الأولى رغبت أن أضيف محتوى الخلية 12 الموجودة في الداتاقريدفيو 1 ( اسم الشخص ) إلى الداتاقريدفيو2 ثم يتم اضافة عدد مرات التكرار في العمود الثاني وهذا ما قام به الأستاتذة عاصم وتركي ولكني فكرت في اضافة اسم الشركة التي ينتمي لها الشخص للداتاقريدفيو2 علماً بأن اسم الشركة موجود في الخلية رقم 13 في الداتاقريدفيو1 وأتمنى يكون الشرح واضح وآسف للإطالة وسوف أجرب الكود الذي أعطيتني اياه وسوف إعلمك بالنتيجة مع جزيل شكري لك ولإهتمامك RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - Taha Okla - 05-02-24 وعليكم السلام ورحمة الله وبركاته في الكود المعدل يكفي فقط أن تضع أسماء الأعمدة ولا تحتاج لأرقمها ولا موضعها.. عدل أسماء الأعمدة في الجزئية التالية من الكود : كود : c1 = x.Field(Of String)("Name"),RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - صالح عبدالله - 05-02-24 السلام عليكم ورحمة الله وبركاته الأستاذ طه الكود يعمل بشكل ممتاز ولكن عند عمل فلترة للداتاقريدفيو1 ثم نضغط على الكود الذي قمت بعمله فإن الكود يعمل على البيانات الموجودة الداتاقريدفيو قبل عملية الفلترة هذا هو الكود الذي استخدمته في الفلترة Dim strALL As String = " Lajnah Like '*" & (ComboBox2.Text.Trim) & "*'"
TryCast(DataGridView1.DataSource, DataTable).DefaultView.RowFilter = String.Format(strALL)
RE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - Taha Okla - 05-02-24 وعليكم السلام ورحمة الله وبركاته ملاحظة : قبل الاجابة عن السؤال الاخير .. في كود الفلترة لا داعي لكتابة String.Format(strALL) يكفي فقط أن تكتب strALL وإنما (String.Format(strALL)) هو جزء من كود عندي لأغراض تنسيقية وخلافها،، ولم أنتبه عند نقله هنا أنه يجب حذفها بعد التعديل عليه ليناسب مشروعك.. ----------------------------------------------------------------- الجواب على سؤالك الأخير : استخدم هذا الكود فإنه يعمل على البيانات بعد الفلترة .. (لكن بعد عمل التعديلات التي تناسب مشروعك) .. كود : Dim dv As New DataViewRE: معرفة عدد مرات تكرار الاسم في الداتاقريدفيو - صالح عبدالله - 05-02-24 بارك الله فيك أستاذ طه والله عاجز عن الشكر سهلت لي أمور كثيرة بالتعديل الأخير كما لا أنسى شكري للأستاذ عاصم والاستاذ تركي بارك الله فيكم جميعاً |