正如其他人已經指出
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