تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
فلترة datagridview بدون قاعدة بيانات
#1
السلام عليكم ورحمة الله وبركاته 
سؤالي كيف أقوم بعمل فلترة للبيانات باستخدام الداتاقريد فيو ولا افلتر البيانات من قاعدة البيانات ( يعني استعلام الفلترة من خلال الداتاقريدفيو  فقط ) قمت باستخدام الكود التالي ولكن تظهر عندي أخطاء 
بارك الله فيكم 


  If ComboBox2.Text <> String.Empty Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    If row.Cells(5).Value.ToString().Trim().Contains(ComboBox2.Text.Trim()) Then
                        row.Visible = True
                    Else
                        row.Visible = False
                    End If
                Next
            End If
الرد }}}
تم الشكر بواسطة:
#2
و عليكم السلام ورحمة الله وبركاته :

فقط استبدل كامل الكود الموجود في مشاركتك بهذا الكود :
كود :
Dim strALL As String = DataGridView1.Columns(5).Name & " Like '*" & (ComboBox2.Text.Trim) & "*'"
TryCast(DataGridView1.DataSource, DataTable).DefaultView.RowFilter = String.Format(strALL)

الـ :
DataGridView1.Columns(5).Name
يمكنك استبدالها باسم العمود للتبسيط
فتصبح مثلاً (في حال اسم الحقل City):
كود :
Dim strALL As String =  " City Like '*" & (ComboBox2.Text.Trim) & "*'"
TryCast(DataGridView1.DataSource, DataTable).DefaultView.RowFilter = String.Format(strALL)
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
#3
جزاك الله كل خير أستاذ طه وكتب لك الأجر لما تقدمه لجميع رواد المنتدى شكرا شكرا لك 
الرد }}}
تم الشكر بواسطة: asmarsou , Taha Okla
#4
سؤال آخر لو سمحت وآسف لكثرة الأسئلة 
 كيف استطيع ان أعمل تقرير للبيانات في الكريستال ريبورت مع العلم أن البيانات في الداتاقريدفيو ليس لها قاعدة بيانات ( عمل تقرير كريستال ريبورت من الداتاقريدفيو مباشرة ) 

السلام عليكم ورحمة الله وبركاته 
تم حل المشكلة الأخيرة بإستخدام الكود التالي لعل أحد الإخوة يستفيد منه 
     Dim dt2 As New DataTable

        dt2.Columns.Add("Student_Num", GetType(String))

        dt2.Columns.Add("Student_Name", GetType(String))


        For Each row As DataGridViewRow In DataGridView1.Rows


            dt2.Rows.Add(row.Cells(1).Value, (row.Cells(2).Value))

        Next


        Dim cr2 As New CrystalReport1

        cr2.SetDataSource(dt2)


        Dim r2 As New Form6

        'Form25.FormBorderStyle = Windows.Forms.FormBorderStyle.None

        r2.CrystalReportViewer1.Zoom(300%)

        r2.CrystalReportViewer1.ReportSource = cr2

        r2.ShowDialog()
الرد }}}
تم الشكر بواسطة:



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


يقوم بقرائة الموضوع: