c#
  • wildcard
  • 2015-06-02 101 views 0 likes 
    0

    的SQL查詢時使用*作爲通配符我期望對來自C#中的訪問數據庫的多列執行大於或小於的搜索。在搜索具有大於或小於

    到目前爲止,我試圖比較存儲在訪問數據庫中的底盤號碼值與文本框中的值。如果該值大於文本框,則會將存儲在數據庫中的相關數據返回到gridview。

    到目前爲止我的代碼是:

    var sql = "SELECT * FROM [database] WHERE (Manufacturer ='" + comboBox3.Text + 
        "' OR Manufacturer='*') AND (Model ='" + comboBox4.Text + "' OR Model='*') AND (Fuel ='" + 
        textBox9.Text + "' OR Fuel='*') AND (Chassisno='*' OR (Chassisno > '" + textBox2.Text + "'))"; 
    

    上面的代碼查詢結果,但運營商「大於」被忽略。

    有沒有人有任何想法,爲什麼會這樣?

    +13

    在編寫一行代碼之前,請花點時間研究Sql Injection攻擊以及如何在Ado.Net中編寫參數查詢。 – asawyer

    回答

    0

    不能使用通配符*用 「=」,你應該使用 「喜歡」 的文章:

    .....OR Manufacturer like '*') AND (Model ='" + comboBox4.Text + "' OR Model like '*') AND (Fuel ='" + 
    textBox9.Text + "' OR Fuel like '*') AND (Chassisno like'*'.... 
    
    +0

    我認爲他是匹配字面星號。 'LIKE'的通配符是'%'。 – Mikkel

    2

    此部分:

    Chassisno='*' 
    

    導致查詢發現任何東西。如果您真的只想找到比Chassisno更大的值,請刪除該部分查詢。

    相關問題