2013-01-16 168 views
-1

我已經用vb.net寫了這個代碼,但它給我錯誤的結果。SQL語句不返回實際結果

sql = "SELECT * FROM Spec WHERE WheatType= '" & ddlType.SelectedValue & "' AND Category='1BK' AND Silo= '" & txtSilo.Text & "'" 

如果我刪除Silo= '" & txtSilo.Text & "'它給我的結果,但它不是要我要。任何想法如何解決它?

+1

什麼是「錯誤」的結果呢?什麼是「正確」的結果?你的桌子結構是什麼? –

+2

也有潛在的SQL注射 –

+0

檢查'txtSilo.Text'。有它想要的文字?並且是'筒倉'字符串類型? –

回答

1

只是一個猜測,但你做了區分大小寫的匹配存在。可能是你的txtSilo.Text設爲說「紅」,而它的筒倉設爲說「紅」

數據庫的行你可以做,而不是

sql = "SELECT * FROM Spec WHERE WheatType= '" & ddlType.SelectedValue & "' AND Category='1BK' AND Silo LIKE '" & txtSilo.Text & "'" 

請記住,你也應該修剪也許Textfield中的空白。

BTW這種代碼是SQL注入攻擊很開放。我會建議有關該主題的閱讀了,如果這將是一個生產應用解決這個嚴重的安全漏洞。否則,有人可能會說刪除與傳遞到txtSilo權值表中所有行等