محتاج كود لعمل فلتر داخل ال datagridview والبحث عن كلمات معينة داخل الحقول بأسم حقل معين ونفترض اسمه Name البحث بالاسم داخل الدات قرد فيو علما بأن ال datagridview ليست مربوطه بقاعدة بيانات ولاكنها مبروطه مع ملف اكسيل ارجو المساعدة اخواني لقد توصلت لكود صغير ومحتاج تعديل ارجو المساعدة وجزاكم الله خير
كود :
Dim searchValue As String = textBox1.Text
dgvProjects.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Try
For Each row As DataGridViewRow In dgvProjects.Rows
If row.Cells(2).Value.ToString().Equals(searchValue) Then
row.Selected = True
Exit For
End If
Next
Catch exc As Exception
MessageBox.Show(exc.Message)
End Try
جرب ده
الكود اعلاه لن يعمل يرجى المساعدة في الكود الأساسي وجزاكم الله خير
اسم الداتا جريد فيو اللي على الفورم ايه؟
اللي في الصورة محطوط اسم داتا جريد ما هياش عالفورم
صحح الاسم بس
وجرب ورد لي خبر
اخوي الكود قام بعمليه تظليل باللون الأزرق للحقل بأسم البحث .. ولن يقوم بعمليه فلترة للبيانات المعنية او المطلوبة بأسم البحث المفروض تظهر عندي الحقول المطلوبه فقط وجزاك الله خير
اذا كنت تقصد كما في الصورة
فالفترة تكون للبيانات أولا ثم جعل الجريد تعرض الناتج
مثلا
PHP كود :
Dim Cmd As New OleDbCommand("Select * from Table where Firled like '" & textbox1.text & "%'",MyCon)
dim Dtab as new DataTable
Dtab.Load(Cmd.ExecuteReader)
وبعد ذلك نمرر الناتج للجريد فيو كما ترى في الصورة
Datagridview1.Datasource=dt
بالتوفيق
اخي العزيز هذا الكود يعمل في حالة الداتا جريد فيو مربوطه مع قاعدة بيانات ... اما المطلوب فلترة لدات جريد فيو مربوطة مع ملف اكسيل وليست داتا بيز وجزاك الله خير
تفضل المثال
PHP كود :
Public Class Form1
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If TextBox1.Text.Trim = "" Then Exit Sub
If e.KeyData = Keys.Enter Then
For a = 0 To dg.Rows.Count - 2
Dim t As String = dg.Rows(a).Cells(0).Value
If t = TextBox1.Text Then
dg.CurrentCell = dg.Rows(a).Cells(0)
dg.Rows(a).DefaultCellStyle.BackColor = Color.GreenYellow
dg.Rows(a).Selected = False
Else
dg.Rows(a).DefaultCellStyle.BackColor = Color.White
dg.Rows(a).Selected = False
End If
Next
End If
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dg.Rows.Add("سعود", "37")
dg.Rows.Add("ناجح", "40")
dg.Rows.Add("ماضي", "30")
End Sub
End Class
أخ سعود طلعت معي هاذي الاخطاء ... مامسميات ال textbox و DataGridView1 تبع المثال السابق
الشي الثاني الله يعطيك العافية بالنسبة للبيانات الموجودة داخل ال DataGridView محمله من ملف Excel خارجي يعني ما ابغاه الحقول تظهر لي من الكود زي كدا
dg.Rows.Add("سعود", "37")
dg.Rows.Add("ناجح", "40")
dg.Rows.Add("ماضي", "30")
ال DataGridView تجي جاهزة بالبيانات بمجرد تحميل ملف ال Excel تنزل عندي البيانات يعني مطلوبه عمليه الفلترة بنفس مثالك السسابق بالظبط بس من غير ما اضيف البيانات من خلال الكود .... فلترة للبيانات الموجودة داخل DataGridView فقط وجزاكم الله جميعا كل خير
إقتباس :أخ سعود طلعت معي هاذي الاخطاء ... مامسميات ال textbox و DataGridView1 تبع المثال السابق
اخي الكريم هذه الاخطاء تظهر في حال النسخ واللصق (وهذه سبقناك لها)
دقق في الكود جيدا واستبدل اللازم.
إقتباس :الشي الثاني الله يعطيك العافية بالنسبة للبيانات الموجودة داخل ال DataGridView محمله من ملف Excel خارجي يعني ما ابغاه الحقول تظهر لي من الكود زي كدا
اخي الكريم لا عليك من كيفية تعبئة شبيكة البيانات المهم هو كود البحث في الاداة فكود البحث ليس مرتبط بمصدر البيانات.
الـ dg = هي Datagridview غيرت اسمها اختصارا لها.
Textbox1 مربع نص عادي جدا ضمن حدث KeyDown الخاص به ضع الكود:
PHP كود :
If TextBox1.Text.Trim = "" Then Exit Sub
If e.KeyData = Keys.Enter Then
For a = 0 To dg.Rows.Count - 2
Dim t As String = dg.Rows(a).Cells(0).Value
If t = TextBox1.Text Then
dg.CurrentCell = dg.Rows(a).Cells(0)
dg.Rows(a).DefaultCellStyle.BackColor = Color.GreenYellow
dg.Rows(a).Selected = False
Else
dg.Rows(a).DefaultCellStyle.BackColor = Color.White
dg.Rows(a).Selected = False
End If
Next
End If