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

نسخة كاملة : فلترة datagridview بدون قاعدة بيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته 
سؤالي كيف أقوم بعمل فلترة للبيانات باستخدام الداتاقريد فيو ولا افلتر البيانات من قاعدة البيانات ( يعني استعلام الفلترة من خلال الداتاقريدفيو  فقط ) قمت باستخدام الكود التالي ولكن تظهر عندي أخطاء 
بارك الله فيكم 


  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
و عليكم السلام ورحمة الله وبركاته :

فقط استبدل كامل الكود الموجود في مشاركتك بهذا الكود :
كود :
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)
جزاك الله كل خير أستاذ طه وكتب لك الأجر لما تقدمه لجميع رواد المنتدى شكرا شكرا لك 
سؤال آخر لو سمحت وآسف لكثرة الأسئلة 
 كيف استطيع ان أعمل تقرير للبيانات في الكريستال ريبورت مع العلم أن البيانات في الداتاقريدفيو ليس لها قاعدة بيانات ( عمل تقرير كريستال ريبورت من الداتاقريدفيو مباشرة ) 

السلام عليكم ورحمة الله وبركاته 
تم حل المشكلة الأخيرة بإستخدام الكود التالي لعل أحد الإخوة يستفيد منه 
     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()