Vb.net 搜索按钮没有响应
我创建了一个搜索按钮来查询我的MS Access数据库并显示结果,但每当我键入ID并单击搜索按钮时,它都不会执行任何操作 其他一切工作正常,它从VB表单复制数据并将其存储在MS Access数据库中,但“搜索”按钮不会查询数据库并检索数据 以下是我的搜索按钮代码:Vb.net 搜索按钮没有响应,vb.net,ms-access,Vb.net,Ms Access,我创建了一个搜索按钮来查询我的MS Access数据库并显示结果,但每当我键入ID并单击搜索按钮时,它都不会执行任何操作 其他一切工作正常,它从VB表单复制数据并将其存储在MS Access数据库中,但“搜索”按钮不会查询数据库并检索数据 以下是我的搜索按钮代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click Dim
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim found As Boolean
Try
cm = New OleDb.OleDbCommand
With cm
.Connection = cn
.CommandType = CommandType.Text
.CommandText = "SELECT* FROM tblInfo WHERE (ID = @ID & txtFind.Text = @ID)"
dr = .ExecuteReader
End With
While dr.Read()
found = True
txtFirst1.Text = dr("Pfirst").ToString
txtMid1.Text = dr("Pmiddle").ToString
txtLast1.Text = dr("Plast").ToString
txtAdd1.Text = dr("Paddress").ToString
txtPhone1.Text = dr("Pphone").ToString
txtContact1.Text = dr("Pcontact").ToString
End While
cn.Close()
Exit Sub
If found = False Then MsgBox("Patient ID not found!", MsgBoxStyle.Critical)
dr.Close()
Catch ex As Exception
End Try
如何解决此问题?问题在于试图将
txtFind.Text
的值传递到命令中
您要使用:
请注意,我使用了OleDbType.[Type]
。您需要将其替换为为为列ID
指定的数据类型
在调用ExecuteReader()
之前,您似乎还没有打开连接:
我会考虑实施:
有时,代码需要非托管资源,例如文件句柄、COM包装器或SQL连接。Using块保证在代码使用完一个或多个这样的资源后可以对它们进行处理。这使它们可供其他代码使用
以下是一些示例代码:
Using con As New OleDbConnection(connectionString),
cmd As New OleDbCommand("SELECT * FROM tblInfo WHERE ID = ?", con)
con.Open()
cmd.Parameters.Add("@ID", OleDbType.[Type]).Value = txtFind.Text
dr = cmd.ExecuteReader()
...
End Using
如果您没有接受异常,您将收到一条清晰的错误消息,告诉您出了什么问题。请阅读并采取行动
cn.Open()
Using con As New OleDbConnection(connectionString),
cmd As New OleDbCommand("SELECT * FROM tblInfo WHERE ID = ?", con)
con.Open()
cmd.Parameters.Add("@ID", OleDbType.[Type]).Value = txtFind.Text
dr = cmd.ExecuteReader()
...
End Using