好吧,我使用C#將信息插入到數據庫服務器中的表中。它基於一堆添加到它的if語句創建SQL命令。我有一個問題得到清晰地創建聲明。我明白,要插入語句組合在SQL Server中,我們使用:插入語句組合邏輯
INSERT INTO myTable
SELECT 'value1', 'value2'
UNION ALL
SELECT 'value3', 'value4'
UNION ALL
SELECT
etc
我的問題是,命令他們,這樣的語句將無論if語句它通過它的工作。例如,
function()
string sqltext = "INSERT INTO myTable"
if(cond1)
{ sqltext=sqltext + "SELECT 'v1', 'v2' UNION ALL" }
else if (cond2) {
sqltext = sqltext + "SELECT 'v3', 'v4' UNION ALL" }
在這種情況下,如果由自己任一條件的回報,該語句將不起作用,因爲該語句將在UNION ALL結束。我希望這是有道理的。思考?
這聽起來像一個潛在的SQL注入漏洞的列表。繼續執行... http://www.unixwiz.net/techtips/sql-injection.html –
請停止這樣做,然後您的代碼在每日wtf結束。編寫存儲過程或使用ORM。 http://thedailywtf.com/Articles/Enterprise_SQL.aspx – kakridge
此代碼完全用於內部使用,所以它只能由管理員訪問。但是,謝謝。我將繼續銘記未來 – Aeonstrife