如何在c#中给sql中的变量?

LIH*_*LIH 0 c# sql asp.net

我将数据插入到asp.net中的数据列表中.我需要根据我的需要修改Select Command.我做了这样的事,

string query = "SELECT [movieName], [sDate], [eDate], [IMDb], [imageUrl] FROM [movieDrama] WHERE ([category]='Drama' AND [movieName] like '%@key%') ORDER BY [movieName]";
SqlCommand cmd = new SqlCommand(query);
cmd.Parameters.AddWithValue("@key", key);
SqlDataSource1.SelectCommand = query;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我认为在定义'@key'时我做错了.如何以正确的方式做到这一点?提前致谢...

Son*_*nül 6

使用它像;

LIKE '%' + @key + '%'
Run Code Online (Sandbox Code Playgroud)

代替

LIKE '%@key%'
Run Code Online (Sandbox Code Playgroud)

完整查询;

string query = "SELECT [movieName], [sDate], [eDate], [IMDb], [imageUrl] FROM [movieDrama] WHERE ([category]='Drama' AND [movieName] LIKE '%' + @key + '%') ORDER BY [movieName]";
SqlCommand cmd = new SqlCommand(query);
cmd.Parameters.AddWithValue("@key", key);
Run Code Online (Sandbox Code Playgroud)

实际上,在查询的每一列中都不需要方括号,只需要在需要使用某些保留关键字作为列名时使用.