sql - 在vb.net中使用SQL查询从MS Access数据库中检索选定的记录

标签 sql vb.net ms-access

我尝试了以下代码来获取员工的记录。

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/

相关文章:

mysql - SQL 错误 :root:Line magic function

mysql - INNER JOIN 导致重复行

sql - ORDER BY 无法 Access

ms-access - 仅当表已填充时才输出文件

mysql在类似操作中获得最大匹配

mysql - 什么是 PostgreSQL 的 EXPLAIN ANALYZE 的 MySQL 等价物

RegEx - 解析 Csv 文本

asp.net - 从 ASP .Net 下载文件时,文本文件会附加 HTML 内容

VB.Net 写入 TXT 文件

sql - 如何在 MS Access 2003 中创建参数化查询并使用其他查询/表单来填充参数并获取结果集