根據多個複選框的狀態,我有九個字符串,它們是SQL查詢或只是空的(「」)。我需要他們在另一個字符串像組合字符串並在特定位置用另一個字符串分隔它們
string OP = "AND";
string query = "select * from table where " + string1 + OP + string2 + OP + string3 + OP + ... + " order by ID;"
的問題是,在琴絃之間,我需要有一個AND
或OR
結合。但是,如果任何字符串都是空的,它會給我一個SQL錯誤。 SQL不明白像
select * from table where AND a = "adsf" AND AND AND z = "fghj" AND order by ID;
它看起來像這樣:
select * from table where a = "adsf" AND z = "fghj" order by ID;
**不要使用原始的SQL **最低限度,用[*參數化查詢*](HTTP://blog.divergencehosting。 COM/2009/04/09 /使用參數參數化查詢數據庫的交互,cshar-vbnet /)。否則,你很容易受到SQL注入和混亂,容易出錯的命令串聯代碼的影響。 – Adam
你的代碼是什麼樣的?讓我們從這個開始,並從你的工作。 –
你知道,你可能應該提供加括號,因爲你可以混合運營商。另外,你應該在這裏使用stringbuilders。另外,不要這樣做:這是不安全的(除非你完全控制所有的值)。即使如此:使用參數查詢(也稱爲準備陳述) – sehe