您好我已经创建了一个搜索框,如果文本框中输入了任何内容,则会在datagrid视图中获取数据,但我的问题是当数据库中没有输入某些内容时,数据网格视图也是可见的。如果数据在数据库中不可用,我想隐藏gridview。
If (txtpname.Text <> "") Then
Try
con = New System.Data.OleDb.OleDbConnection(connectionString)
con.Open()
Dim ds As DataSet = New DataSet
Dim adapter As New OleDb.OleDbDataAdapter
Dim sql As String
Dim s As String
s = txtpname.Text
sql = "SELECT product_name as `Product` , rate as `Rate`,category as `Category`, product_id as `pid` FROM products where product_name like '" & (s) & "%' AND deleted='N' order by product_id ;"
adapter.SelectCommand = New OleDb.OleDbCommand(sql, con)
adapter.Fill(ds)
dgvitmsearch.DataSource = ds.Tables(0)
dgvitmsearch.Columns("Product").Width = 220
dgvitmsearch.Columns("Rate").Visible = False
dgvitmsearch.Columns("Category").Width = 148
dgvitmsearch.Columns("pid").Visible = False
con.Close()
Catch ex As Exception
MsgBox("error found")
End Try
在txtpname_TextChanged
中调用上述函数答案 0 :(得分:1)
检查datagridview是否有行计数&lt; 0,如果没有隐藏它。在指定数据源之后添加它。
if dgvitmsearch.rows.count=0 then
dgvitmsearch.visible=false
end if
这将起作用
答案 1 :(得分:0)
最好检查您的dataset(ds)
表格ds.Tables
是否有行,并在填写IF
之前写下datagrid
条件如下所示
If ds.Tables(0).Rows.Count > 0 Then
'fill datagrid with your dataset
else
'change visibility here(false)
End If
实际代码应该写成:
If ds.Tables(0).Rows.Count > 0 Then
dgvitmsearch.DataSource = ds.Tables(0)
dgvitmsearch.Columns("Product").Width = 220
dgvitmsearch.Columns("Rate").Visible = False
dgvitmsearch.Columns("Category").Width = 148
dgvitmsearch.Columns("pid").Visible = False
Else
dgvitmsearch.visible = False
End If