我尝试了以下代码来获取员工的记录。
sql = "SELECT * FROM employeerecord WHERE [First Name] LIKE '%" & TBFirstName.Text & "%'" &" OR [Last Name] LIKE '%" & TBLastName.Text & "%'" & " OR [Emp ID] LIKE '%" & TBEmpID.Text & "%'"
问题在于,无论文本框中的任何字段是否与其匹配,所有记录都会出现在数据库中。如何让它只检索那些类似于文本字段中的数据的记录?我哪里出错了?
最佳答案
如果所有三个文本框都包含 Null 或空字符串,则由您的代码构建的 WHERE
子句将是这样的...
WHERE [First Name] LIKE '%%' OR [Last Name] LIKE '%%' OR [Emp ID] LIKE '%%'
这将返回来自 employeerecord
的几乎所有行...唯一排除的记录是那些在所有三个字段中都包含 Null 的记录:[First Name]
; [姓氏]
;和[员工 ID]
。
如果这些文本框中只有一个包含 Null 或空字符串,则基于该文本框的 WHERE
条件仍将是 LIKE '%%'
并且,因为WHERE
使用 OR
,您将再次获得几乎所有行。
关于sql - 在vb.net中使用SQL查询从MS Access数据库中检索选定的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20313666/