C#sql like语句不起作用

Sep*_*111 3 c# sql-server sql-like

大家好,祝大家好.关于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);
   }
}
Run Code Online (Sandbox Code Playgroud)

@ what%不起作用但是当我把'a%'放在我的listview1中以字母a开头的所有项目时.我不知道如何解决这个问题.请帮帮我.先感谢您.

Bro*_*ass 5

试试这个:

mydaEvents.SelectCommand.CommandText = "select * from Eventstbl where What like @what + '%'";
Run Code Online (Sandbox Code Playgroud)

引号内的文本将被视为... text - 您希望将参数解释为其字符串,因此您必须将其移出.


Dan*_*fer 5

我猜这个问题是'@what%'被视为文字,而不是被你的参数值取代.

尝试@what + '%'改为做.