大家好,祝大家好。关于sql / c#的声明,我有一个小问题,我无法弄清楚为什么我的代码不起作用。
if (Combo_List.Text == "What")
{
listView1.Items.Clear();
myds.Clear();
mydaEvents.SelectCommand = myconn.CreateCommand();
mydaEvents.SelectCommand.CommandText = "select * from Eventstbl where What like '@what%'";
mydaEvents.SelectCommand.CommandType = CommandType.Text;
mydaEvents.SelectCommand.Parameters.Add("@what", SqlDbType.NVarChar, 2000, "What").Value = text_Search.Text;
mydaEvents.Fill(myds, "Eventstbl");
foreach (DataRow item in myds.Tables["Eventstbl"].Rows)
{
ListViewItem items = new ListViewItem(item["EventsID"].ToString());
items.SubItems.Add(item["What"].ToString());
listView1.Items.Add(items);
}
}
@ what%不起作用但是当我把'a%'放在我的listview1中以字母a开头的所有项目时。我不知道如何解决这个问题。请帮帮我。提前谢谢。
答案 0 :(得分:5)
试试这个:
mydaEvents.SelectCommand.CommandText = "select * from Eventstbl where What like @what + '%'";
引号内的文本将被视为... text - 您希望将参数解释为其字符串 value ,因此您必须将其移出。
答案 1 :(得分:5)
我猜测问题是'@what%'
被视为文字,而不是被参数的值替换。
尝试改为@what + '%'
。