السلام عليكم ورحمه الله وبركاته اخواني الاعزاء
يوجد لدي سطرين في الداتاا جريد فيو أرىد اخفاءهم وفي البحث لا أريد أن تظهر في الداتا جريد فيو
ولكم جزيل الشكر والتقدير
Function FillDataTable(StrSQL As String) As DataTable
Dim dtFill As New DataTable
Try
dtFill.Clear()
Dim da As New OleDb.OleDbDataAdapter(StrSQL, con)
da.Fill(dtFill)
Catch ex As Exception
End Try
Return dtFill
End Function
في تحميل الفورم اضع هذا الكود
كود :
Dim dt1 As New DataTable
Dim StrSQL1 As String = "select * from Users_Permission"
dt1 = FillDataTable(StrSQL1)
DataGridView1.DataSource = dt1
في زر البحث هذا الكود
كود :
Dim dt1 As DataTable
If CBSearch.SelectedIndex = 0 Then
Dim StrSQL1 As String = "select * from Users_Permission where EmpID like '" & TxtSearch.Text.Trim & "' "
dt1 = FillDataTable(StrSQL1)
DataGridView1.DataSource = dt1
10-05-20, 06:52 AM (آخر تعديل لهذه المشاركة : 10-05-20, 07:07 AM {2} بواسطة سعود.)
اعمل حلقة تلف الصفوف وتحقق من المسمى فان كان باسم Admin او غيره اخف الصف.
PHP كود :
Public Class Form1 Dim da As OleDb.OleDbDataAdapter Dim dt As DataTable Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=" & CurDir() & "\db.accdb" Using con As New OleDb.OleDbConnection(str) da = New OleDb.OleDbDataAdapter("select * from tb", con) dt = New DataTable da.Fill(dt) d.DataSource = dt Dim i As Integer d.Columns(0).Visible = False d.Columns(1).Width = 95 d.Columns(2).Width = 70 d.Columns(3).Width = 70
For i = 0 To d.Rows.Count - IIf(d.AllowUserToAddRows, 2, 1) Dim t As String = d.Rows(i).Cells(1).Value If t.Trim.ToLower = "admin" Then d.Rows(i).Visible = False Else d.Rows(i).Visible = True End If Next End Using End Sub End Class
لكم جزيل الشكر والتقدير اخواني الأعزاء
لم ينجح الكود ولا اعلم اين الخطاء
فعندما اضغط على البوتن لا تظهر التي عليها صح وعندما اضغط مره اخرى يظهر هذا الخطا
فحاولت باضافة عمود Boolean
واضفت هذا الكود ولكن يظهر لي خطاء
كود :
For i = 0 To dt.Rows.Count - IIf(d.AllowUserToAddRows, 2, 1)
Dim t As Boolean = d.Rows(i).Cells("Hideandshow").Value
If t = True Then
d.Rows(i).Visible = False
Else
d.Rows(i).Visible = True
End If
Next
المثال بعد التعديل وذلك باضافة عمود hide من نوع (نعم/لا) للجدول
PHP كود :
Public Class Form1 Dim da As OleDb.OleDbDataAdapter Dim dt As DataTable Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=" & CurDir() & "\db.accdb" Using con As New OleDb.OleDbConnection(str) da = New OleDb.OleDbDataAdapter("select * from tb", con) dt = New DataTable da.Fill(dt) d.DataSource = dt Dim i As Integer d.Columns(0).Visible = False
Dim dc As Integer = d.Columns.Count - 1 d.Columns(dc).Visible = False
For i = 0 To d.Rows.Count - IIf(d.AllowUserToAddRows, 2, 1) d.Rows(i).Visible = Not dt.Rows(i).Item(dc) Next End Using End Sub End Class
ركز في الكود:
PHP كود :
For i = 0 To d.Rows.Count - IIf(d.AllowUserToAddRows, 2, 1) d.Rows(i).Visible = Not dt.Rows(i).Item(dc) Next
dc متغير يحمل رقم الاندكس الخاص بعمود الاخفاء لكي يخفيه ومن خلاله نعرف قيمة كل صف اذا كانت القيمة المخزنة نعم تكون قيمة الصف في القريد عكس ذلك باستخدام المعامل Not لان القصد اخفاء
على محاولتكم مساعدتي نجح الكود الذي من عندك اخي سعود وبعد تمعن كبير غيرت استعلام تعبئة داتا جريد فيو الأ وهو هذا الكود واتمنى للجميع دوام الصحه والعافيه وحفظكم الله من كل مكروه
كود :
Sub filldgv2()
Try
Dim DTUSERS As New DataTable
DTUSERS.Rows.Clear()
adapter = New OleDb.OleDbDataAdapter("select * from Users_Permission where Hideandshow = " & False, con)
adapter.Fill(DTUSERS)
DataGridView1.DataSource = DTUSERS
Catch ex As Exception
End Try
End Sub
(10-05-20, 05:17 PM)alshandodi كتب : لك جزيل الشكر والتقدير اخي سعود واخي aljzazy
على محاولتكم مساعدتي نجح الكود الذي من عندك اخي سعود وبعد تمعن كبير غيرت استعلام تعبئة داتا جريد فيو الأ وهو هذا الكود واتمنى للجميع دوام الصحه والعافيه وحفظكم الله من كل مكروه
كود :
Sub filldgv2()
Try
Dim DTUSERS As New DataTable
DTUSERS.Rows.Clear()
adapter = New OleDb.OleDbDataAdapter("select * from Users_Permission where Hideandshow = " & False, con)
adapter.Fill(DTUSERS)
DataGridView1.DataSource = DTUSERS
Catch ex As Exception
End Try
End Sub
سبحان الله هل كنت تريد هذا من الاساس؟
كنت اظنك تريد شيء شبيه بالفلترة من التطبيق (الواجهة)
على كل حال الحمدلله انك توصلت للطريقة اللتي تريد.