正如其他人已经指出的那样
select * from student where Nama_Depan like '%" & nama.Text & "%'
是使用通配符的正确方法
这是 W3Schools 关于 SQL 通配符的教程的链接:http: //www.w3schools.com/sql/sql_wildcards.asp
我建议您快速阅读一下,W3schools 的文章通常非常好。
然而,这是从您的代码中执行 SQL 命令的一种非常糟糕的方式,有人可以很容易地将一些 SQL 代码注入您的文本框中,并且当您的查询被执行时,它可能会破坏您的数据库。
例如,如果有人输入'; DROP TABLE * --
您的文本框,这将允许您的第一个查询运行,然后它会删除您的所有表。
使用参数化查询或存储过程很容易解决这个问题。我个人更喜欢使用存储过程,你可以这样做。
CREATE PROCEDURE MyProc
(
@param1 VARCHAR(50)
)
AS
BEGIN
select * from student where Nama_Depan like '%"'+@param1+'%'
END
然后您只需要编辑您的 VB 代码来调用存储过程而不是执行 SQL 命令。
使用存储过程的另一个优点是它们执行速度稍快且效率更高,这是因为当您将一些 SQL 传递给数据库时,它必须将其编译成 sql 命令才能执行,存储过程已经存储在数据库中所以不需要这样做。
使用存储过程而不只是传输 SQL 语句还有一些额外的安全优势,如果有人在网络/互联网上截获您的 SQL 语句,他们可以深入了解您的数据库结构。对于存储过程,他们可能拦截的只是过程名称和一些参数。