我在尝试选择一些值时遇到了一个sqlexception。 错误:'@navn'附近的语法不正确。我环顾四周寻找与我类似的其他问题,但我找不到任何有价值的东西。
我的代码:
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 :(得分:2)
尝试,
string query = string.Format("SELECT * FROM Vare WHERE Navn LIKE @navn");
com.Parameters.AddWithValue("@navn", "%" + varenavn + "%");
答案 1 :(得分:0)
如果您想要字符串的字面翻译,请在字符串前添加@
符号。这将有助于处理转义字符
This问题也可能会有所帮助
string query = string.Format(@"SELECT * FROM Vare WHERE Navn LIKE %@navn%");
答案 2 :(得分:0)
忘了'?
string query = string.Format("SELECT * FROM Vare WHERE Navn LIKE '%@navn%' ");