![](/img/trans.png)
[英]how to write the if condition in sql sever select statement to create the storedprocedure
[英]How to write the select statement in this condition?
我有一個查詢,我用來過濾網格
SELECT * FROM Resources
WHERE ResourceName ='" + ResourceName + "'
AND Status = '" + status + "' "
我的網格看起來像這樣
ResourceID|ResourceName|Status
我已經在下拉列表中添加了ResorceName和Status以過濾網格現在我的問題是,在這個select語句中,如果任何參數為空,則數據未綁定到網格,但如果我傳遞了兩個參數,則過濾網格和從網格中提供所需的行或過濾的行...任何人都可以告訴我如果任何參數為null,我如何編寫select語句。
看看下面的帖子就可以了解所有問題
在快速解決問題方面,這樣的事情會起作用......
Select * From Resources Where (ResourceName = '"+ ResourceName + "' OR ResourceName IS NULL) AND (Status = '" + Status +"' OR Status IS NULL)
然而,這不是一個可接受的代碼片段,因為它易受SQL注入攻擊。 實質上,假設傳入的ResourceName是
'; Drop Table Resources; --
你可能不需要我告訴你那是做什么的。
我的建議是始終在.Net中使用SQLCommand對象 - 在其他語言中也稱為“Prepared Statements”。 它可以防止這種詭計......
SELECT * FROM Resources
WHERE (ResourceName = CASE WHEN '" + ResourceName + "' IS NULL THEN ResourceName ELSE '" + ResourceName + "' END) //do same for other parameter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.