【发布时间】:2012-09-23 15:23:57
【问题描述】:
我需要从表单上的文本框“购买者”中输入的文本开始显示“购买者”列中的数据。我正在使用 MS Access 2003 数据库。 为此,我使用以下...
Dim query = "SELECT * FROM Details WHERE [Purchaser] LIKE '" & Purchaser.Text & "*'"
Dim dc = New OleDbCommand(query, cn)
Dim rows = dc.ExecuteNonQuery
cn.Close()
If rows = 0 Then
'Show a form for new entry
Else
Dim oleadap = New OleDbDataAdapter(query, cn)
Dim dset As DataSet = Nothing
oleadap.Fill(dset, "Details")
For i = 0 To rows
Dim purName = dset.Tables("Details").Rows(i).Item("Purchaser").ToString
Dim purAddr = dset.Tables("Details").Rows(i).Item("Address").ToString
'Populate a list
Next
End If
即使我在数据库中检查以 A 开头的购买者,变量“行”总是为零。
【问题讨论】:
-
您当前的代码存在
sql injection的漏洞。尝试搜索带有单引号的单词(例如hello's world),肯定会失败,请改用参数,请参阅下面的答案。
标签: vb.net ms-access select sql-like