如何在c#中给出sql内部的变量
本文关键字:sql 内部 变量 | 更新日期: 2023-09-27 18:29:44
我正在asp.net中的数据列表中插入数据。我需要根据需要修改Select命令。我做了这样的事,
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;
但这是行不通的。我想我在定义"@key"时做错了什么。如何以正确的方式进行?提前感谢。。。
像这样使用它;
LIKE '%' + @key + '%'
而不是
LIKE '%@key%'
用于完整查询;
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);
实际上,您不需要在查询的每一列都使用方括号,只需要在需要使用一些保留关键字作为列名时使用即可。
仅此而已:
string query = "SELECT [movieName], [sDate], [eDate], [IMDb], [imageUrl] FROM [movieDrama] WHERE ([category]='Drama' AND [movieName] like @key) ORDER BY [movieName]";
然后
cmd.Parameters.AddWithValue("@key", "%"+ key + "%");
尝试为sqlCommand提供连接参数:
SqlCommand cmd = new SqlCommand(query,YOURCONNECTIONSTRING);
cmd.Parameters.AddWithValue("key", key)