statement = "SELECT OrderID, (SELECT VendName FROM Vendors WHERE Vendors.VendorID = Orders.VendorID) " &
",OrderDt, RcvdDt, OrderTotal " &
"FROM Orders " &
"WHERE VendName=? " &
"ORDER BY OrderDt DESC"
Dim cmd As New OleDbCommand(statement, connection)
cmd.Parameters.AddWithValue("VendName", txtVendorFilter.Text)
Dim reader As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.Default)
我之前试图通过简单地将文本框值直接连接到 SQL 中来做到这一点,我得到一个“没有为所需参数提供值”,并读到我应该使用参数化查询。所以我尝试了这个,它没有给我任何错误,但读者从来没有任何错误。我以前从未使用过参数化查询,所以我有点不知道为什么这不起作用。
编辑:我已经更改了上面的代码,以根据我简要阅读的关于它应该如何工作的内容来解释 OLEDB,它再次给了我“没有为所需参数提供值”。