2013-01-16 129 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权值表中所有行等