• 0
رحيّم

عمل فلترة لبيانات قريد

سؤال

السلام عليكم ورحمة الله وبركاته

كيفكم أساتذتي وإخواني ...

 

عندي داتا قريد فيو ... أريد عمل فلترة للبيانات التي فيها .. بعيداً عن الداتاسيت ( مصدر القريد ) .. هل يمكن ذلك ...

وإذا لم يمكن هذا ... فهذا كود تعبئة القريد لمساعدتي في عمل فلتر للداتاسيت ...

مع العلم أن الفلترة ستكون لأكثر من عمود ( ثلاثة أو أربعة ) وكلها عبارة عن حقول بوليون (( 0 / 1 ) - نعم - لا ) أريد في الفلترة أن تكون ثلاث خطوات ( نعم - لا - الإثنين معاً )

 

هذا كود تعبة القريد

        Dim LSQL As String = "SELECT Req.* where req_name like '%" & TextBox2.Text.Trim & "%' and req_no like '%" & TextBox4.Text.Trim & "%' "        Dim LAdapter As New SqlDataAdapter(LSQL, Con)        LDataSet = New DataSet        Dim RowsCount As Integer        Dim i As Integer        ' مسح الداتاقريدفيو من قيم سابقة محتملة        DataGridView1.Rows.Clear()            LAdapter.Fill(LDataSet, "LoadingData")            RowsCount = LDataSet.Tables("LoadingData").Rows.Count            If RowsCount = 0 Then                ' يتم فحص السجلات المسترجعة من جمل اس كيو ال، فإن كان عددها صفرا                ' معناها لا يوجد سجلات والجدول فارغ                ' فيتم إغلاق الاتصال وعدم عرض اي شيء                DataGridView1.Rows.Clear()                LDataSet.Reset()                Con.Close()                Exit Sub            Else                DataGridView1.Rows.Add(RowsCount)                ' هذه هي عملية تعبئة البيانات من الداتاسيت إلى الداتاقريد فيو                For i = 0 To RowsCount - 1                    With DataGridView1                        .Rows(i).Cells(0).Value = LDataSet.Tables("LoadingData").Rows(i).Item("req_no")                        .Rows(i).Cells(1).Value = LDataSet.Tables("LoadingData").Rows(i).Item("req_name")                        .Rows(i).Cells(2).Value = LDataSet.Tables("LoadingData").Rows(i).Item("req_name2")                        .Rows(i).Cells(3).Value = LDataSet.Tables("LoadingData").Rows(i).Item("Typ_name")                        .Rows(i).Cells(4).Value = LDataSet.Tables("LoadingData").Rows(i).Item("Rejected")                        .Rows(i).Cells(5).Value = LDataSet.Tables("LoadingData").Rows(i).Item("Waiting")                        .Rows(i).Cells(6).Value = LDataSet.Tables("LoadingData").Rows(i).Item("accepted")                    End With                Next                LDataSet.Reset()                Con.Close()            End If
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

اتمني ان تساعدك هذه المشاركة

طريقة عمل البحث داخل DataGridview

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً أستاذ محمد

لقد قمت سابقاً بتطبيق الكود ولكنه لم يعمل في حالة أكثر من عمود ..

والآن : في مشروعي هذا لم يعمل نهائياً لأن الداتاسيت يتم تصفيرها بعد ملئ القريد ...

فوضعت الكود التالي بعد كود عملية ملئ الداتاسيت بالبيانات فأصبح كالتالي :

            LAdapter.Fill(LDataSet, "LoadingData")            LDataSet.Tables("LoadingData").DefaultView.RowFilter = " req_quickly=" & CheckBox1.Checked            RowsCount = LDataSet.Tables("LoadingData").Rows.Count

ولكن بدون فائدة لم يفلتر أبداً .. حتى ولو وضعت بدل CheckBox1.Checked   كلمة true  أو 1

 

أين أضع هذا الكود ؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الحمد لله أولاً

والشكر للأستاذ محمد على تجاوبه ...

لقد حلت المشكلة بما ذكره أستاذنا ( أبو رائد ) في موضوعه في منتدى فيجوال بسط لكل العرب :

http://vb4arb.com/vb/showthread.php?tid=367

وهذا الكود الأخير الذي عمل ما أردته ولكن بقيت مشكلة واحدة أذكرها بالأسفل :

        Dim sql As String = "SELECT Req.* "        Dim where As String = ""        If Me.TextBox2.Text.Trim <> "" Then where &= "AND [req_name] like @req_name "        If Me.TextBox4.Text.Trim <> "" Then where &= "AND [req_no] = @req_no "       If Me.CheckBox1.CheckState = 1 Then where &= "AND [rejected] = @ rejected "        If Me.CheckBox1.CheckState = 0 Then where &= "AND [rejected] is null "        If Me.CheckBox2.CheckState = 1 Then where &= "AND [accepted] = @accepted "        If Me.CheckBox2.CheckState = 0 Then where &= "AND [accepted] is null "        If where <> "" Then sql &= "WHERE " & where.Substring(4)        Dim comm As New SqlCommand(sql, con)        If Me.TextBox2.Text.Trim <> "" Then comm.Parameters.AddWithValue("@req_name", Me.TextBox2.Text.Trim)        If Me.TextBox4.Text.Trim <> "" Then comm.Parameters.AddWithValue("@req_no", Me.TextBox4.Text.Trim)        If Me.CheckBox1.CheckState = 1 Then comm.Parameters.AddWithValue("@ rejected", Me.CheckBox1.CheckState)        If Me.CheckBox2.CheckState = 1 Then comm.Parameters.AddWithValue("@accepted", Me.CheckBox2.CheckState)

المشكلة المتبقية : لا أستطيع البحث بجزء من الإسم ... حاولت ووضعت % مع الكومات بعد كلمة like بطرق وكيفيات مختلفة ولم أوفق إلى الطريقة الصحيحة ...

كيف يمكنني ذلك ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الحمد لله .. بفضل الله
ثم بفضل عدد من مواضيعكم المتعددة ... توصلت إلى الحل

If Me.TextBox2.Text.Trim <> "" Then comm.Parameters.AddWithValue("@req_name", "%" & Me.TextBox2.Text.Trim & "%" )
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .