C# 转发器搜索查询字符串
如何在C#检查C# 转发器搜索查询字符串,c#,asp.net,sql-server,C#,Asp.net,Sql Server,如何在C#检查news_title中的选择行与我的查询字符串Search类似 这就是我尝试过但没有成功的方法。然后,它应该用类似于查询字符串的结果填充中继器 // Get data from database/repository static DataTable GetDataFromDb() { string searchquery = HttpContext.Current.Request.QueryString["Search"].ToString(); var con
news_title
中的选择行与我的查询字符串Search类似
这就是我尝试过但没有成功的方法。然后,它应该用类似于查询字符串的结果填充中继器
// Get data from database/repository
static DataTable GetDataFromDb()
{
string searchquery = HttpContext.Current.Request.QueryString["Search"].ToString();
var con = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
con.Open();
var da = new SqlDataAdapter("SELECT * FROM [news] WHERE ([news_title] " +
"LIKE '%' + " + searchquery + " + '%') Order By news_postdate", con);
var dt = new DataTable();
da.Fill(dt);
con.Close();
return dt;
}
它应该是“%”+searchquery+“%”
。然而,这种字符串连接是开放的。请尝试以下方式:
var da = new SqlDataAdapter("SELECT * FROM [news] WHERE [news_title] " +
"LIKE @Search Order By news_postdate", con);
da.SelectCommand.Parameters.AddWithValue("@Search","%" + searchquery + "%");
或:
虽然直接指定类型并使用Value
属性比AddWithValue
更好。看看这个它不应该是'%“+searchquery+'%'
?另外,这种字符串连接是开放的。顺便说一句,注意这种代码可能出现的SQL注入。S.Akbari我会尝试你的解决方案,我不关心SQL注入本地项目的乐趣。如果你回答了这个问题,我会让你的答案标记为有效。非常感谢。
var da = new SqlDataAdapter("SELECT * FROM [news] WHERE [news_title]" +
" like '%' + @Search+ '%' Order By news_postdate", con);
da.SelectCommand.Parameters.AddWithValue("@Search",searchquery);