SQLEXCEPTION附近有语法错误##

问题描述:

我得到SQLException,而我尝试选择一些值。 错误:近“@navn”不正确的语法。我环顾四周寻找类似于我的其他问题,但我找不到任何值得我的东西。SQLEXCEPTION附近有语法错误##

我的代码:

public List<Vare> findvareAdvanced(string varenavn) 
    { 
     Vare v = new Vare(); 
     List<Vare> lv = new List<Vare>(); 

     SqlConnection myCon = DBcon.getInstance().conn(); 

     string query = string.Format("SELECT * FROM Vare WHERE Navn LIKE %@navn%"); 

     myCon.Open(); 
     SqlCommand com = new SqlCommand(query, myCon); 
     com.Parameters.AddWithValue("navn", varenavn); 
     SqlDataReader dr = com.ExecuteReader(); 
     if (dr.Read()) 
     { 
      v.Stregkode = dr.GetString(0); 
      v.Navn = dr.GetString(1); 
      v.Pris = dr.GetDecimal(2); 
      v.Varegruppenr = dr.GetInt32(3); 
      lv.Add(v); 

     } 
     myCon.Close(); 




     return lv; 
    } 
+0

看到这个问题的答案:http://stackoverflow.com/questions/664314/c-constructing-paramater-query-sql-like –

尝试,

string query = string.Format("SELECT * FROM Vare WHERE Navn LIKE @navn"); 

com.Parameters.AddWithValue("@navn", "%" + varenavn + "%"); 
+0

THX,即工程:) –

+0

+1想什么他实际上正在努力去做。您还可以添加'WHERE Navn LIKE( '%' + @navn + '%')'到你的答案;对于他不能改变参数值的情况。 –

如果你想字符串的直译,字符串前加一个@符号。这将有助于处理转义字符

This问题也可能有助于

string query = string.Format(@"SELECT * FROM Vare WHERE Navn LIKE %@navn%"); 

忘了“?

string query = string.Format("SELECT * FROM Vare WHERE Navn LIKE '%@navn%' ");