我尝试了以下代码来获取员工的记录。
sql = "SELECT * FROM employeerecord WHERE [First Name] LIKE '%" & TBFirstName.Text & "%'" &" OR [Last Name] LIKE '%" & TBLastName.Text & "%'" & " OR [Emp ID] LIKE '%" & TBEmpID.Text & "%'"
问题在于,无论文本框中的任何字段是否与之匹配,所有记录都出现在数据库中。如何使其仅检索与文本字段中的数据类似的记录?我哪里错了?
答案 0 :(得分:2)
如果所有三个文本框都包含Null或空字符串,则代码构建的WHERE
子句将为此...
WHERE [First Name] LIKE '%%' OR [Last Name] LIKE '%%' OR [Emp ID] LIKE '%%'
这将返回employeerecord
的几乎所有行...排除的唯一记录将是在所有这三个字段中包含Null的那些:[First Name]
; [Last Name]
;和[Emp ID]
。
如果这些文本框中只有一个包含Null或空字符串,则基于该文本框的WHERE
条件仍为LIKE '%%'
,因为WHERE
使用{{1}你将再次获得几乎所有的行。