如何解决如何在自定义数据库中通过文本框搜索gridview vb.net
我用来自不同表的连接列制作了一个datagridview。
我用于此的代码在这里:
Private Sub Dossiers_Load(sender As Object,e As EventArgs) Handles MyBase.Load
Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\GoogleDrive\EINDWERK VBNET\PatientenDatabase.accdb"
Dim con As New OleDbConnection(str)
Dim com As String = "Select tbl_Dossiers.Dos_ID,tbl_Relaties.Rel_Naam,tbl_Relaties.Rel_Voornaam,tbl_Onderzoekstypes.OZ_TypeOnderzoek,tbl_Diagnoses.Diag_Type
FROM((((tbl_Dossiers
Left OUTER JOIN tbl_DossRelatie ON tbl_Dossiers.Dos_ID = tbl_DossRelatie.DR_DossID)
Left OUTER JOIN tbl_Relaties ON tbl_DossRelatie.DR_RelID = tbl_Relaties.Rel_ID)
Left OUTER JOIN tbl_OnderzoeksTypes ON tbl_Dossiers.OZ_ID = tbl_OnderzoeksTypes.OZ_ID)
Left OUTER JOIN tbl_Diagnoses ON tbl_Dossiers.Diag_ID = tbl_Diagnoses.Diag_ID)
ORDER BY tbl_Dossiers.Dos_ID"
Dim adpt As New OleDbDataAdapter(com,con)
Dim dossierset As New DataSet()
adpt.Fill(dossierset,"Dos_ID")
Dim DossierbindingSource As New BindingSource
DGVDossiers.DataSource = dossierset.Tables(0)
dgvDossiers.Show()
现在,我已经创建了文本框来过滤此datagridview,以便在该视图中非常具体地搜索正确的档案,以便以新的形式打开和编辑它。
在一个表datagridview中,我可以简单地使用如下代码:
Private Sub txtSearchRelation_KeyDown(sender As Object,e As KeyEventArgs) Handles txtSearchRelation.KeyDown
If e.KeyCode = Keys.Enter Then
Tbl_RelatiesBindingSource.Filter = "Rel_Naam like '" & txtSearchRelation.Text & "%'" &
" OR Rel_Voornaam like '" & txtSearchRelation.Text & "%'"
'NOG VERDER AAN TE VULLEN MET ANDERE FILTERS!!!!
End If
End Sub
Private Sub BtnZoekRelatie_Click(sender As Object,e As EventArgs) Handles btnZoekRelatie.Click
Tbl_RelatiesBindingSource.Filter = "Rel_Naam like '" & txtSearchRelation.Text & "%'" &
" OR Rel_Voornaam like '" & txtSearchRelation.Text & "%'"
End Sub
但是对于我一生来说,我无法在加入tbl datagridview的情况下使用它。 任何人都有解决此问题的想法? 我正在尝试通过文本框上的enterkey和文本框旁边的searchbutton进行搜索 我是一个初学者。
解决方法
为了过滤DataGridView,您可以尝试以下代码。
TryCast(DataGridView1.DataSource,DataTable).DefaultView.RowFilter = String.Format("[{0}] = '{1}'",columnName,filterValue)
因此,您的问题看起来很不错
Private Sub txtSearchRelation_KeyDown(sender As Object,e As KeyEventArgs) Handles txtSearchRelation.KeyDown
If e.KeyCode = Keys.Enter Then
TryCast(DGVDossiers.DataSource,DataTable).DefaultView.RowFilter = "Rel_Naam like '" & txtSearchRelation.Text & "%'" &
" OR Rel_Voornaam like '" & txtSearchRelation.Text & "%'"
End If
End Sub
,
做到了:
Private Sub Pat_VoornaamTextBox_KeyDown(sender As Object,e As KeyEventArgs) Handles Pat_VoornaamTextBox.KeyDown
If e.KeyCode = Keys.Enter Then
TryCast(DGVDossiers.DataSource,DataTable).DefaultView.RowFilter = "Rel_Naam LIKE '" & Pat_VoornaamTextBox.Text & "%'" &
" OR Rel_Voornaam like '" & Pat_VoornaamTextBox.Text & "%'"
End If
End Sub
Private Sub zoekNaam_Click(sender As Object,e As EventArgs) Handles zoekNaam.Click
If Pat_VoornaamTextBox.Text = "" Then
MsgBox("Vul iets in",MsgBoxStyle.Information)
Else
TryCast(DGVDossiers.DataSource,DataTable).DefaultView.RowFilter = "Rel_Naam LIKE '" & Pat_VoornaamTextBox.Text & "%'" &
" OR Rel_Voornaam like '" & Pat_VoornaamTextBox.Text & "%'"
End If
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。