2014-02-06 160 views
1

我有這一段代碼SQLite的查詢

premios pre = new premios() { name = "premio1", link = "http://www.host.com/image.png" }; 
       if (DB.CheckPremios(pre)) 
{//does stuff 
} 

和CheckPremios功能是這一個:

public bool CheckPremios(premios pre) 
     { 
      using (var db = new SQLiteConnection(dbPath)) 
      { 
       var existing = db.Query<premios>("select * from premios where name =" + pre.name); 
       if (existing != null) 
       { 
        return true; 
       } 
      } 
      return false; 
     } 

附加信息:沒有這樣的柱:premio1

它抱怨列「Premio1」不存在,所以「Premio1」不在列名稱...

是我的查詢錯誤?

回答

0

您的查詢調用不正確,主要是因爲您沒有在引號中包含查詢值,所以SQLite會將其視爲與列名進行比較。我建議不要在自己中添加單引號,而是建議使用查詢調用,方法是指定在哪個位置進行替換並傳入參數列表,如下所示:

var existing = db.Query<premios>("select * from premios where name = ?", pre.name); 
if (existing != null) 
{ 
    return true; 
}