正如其他人已经指出
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 '%"'[email protected]+'%'
END
然后你只需要编辑你的VB代码来调用存储过程而不是执行SQL命令。
使用存储过程的另一个优点是它们的执行速度稍快并且效率更高,这是因为当你将一些SQL传递给数据库时,它必须将它编译成一个sql命令来执行,存储过程已经存在存储在数据库中,所以不需要这样做。
使用存储过程而不仅仅是传输SQL语句还有一些额外的安全性好处。如果有人在跨网络/互联网的方式上拦截SQL语句,他们可以深入了解数据库结构。使用存储过程,他们可能截取的所有内容都是过程名称和一些参数。
你的问题不是关于ASP和VB。问题是关于你的SQL数据库语法! – 2012-07-12 14:06:42
请在你实现任何这样的任何地方之前,研究“SQL注入”。这样简单的代码是很容易被利用的。 http://xkcd.com/327/ – 2012-07-12 14:10:47