c#从checkboxlist中筛选sql查询的问题
这是我的问题。我有一个文本框,其中可以实现关键字的研究。我有一个带有不同主题(ADV、Logistic、Finance、Administration)的复选框来过滤sql查询。如果我搜索关键字并选中“logistic”,则返回结果将仅与“logistic”相关。这很好,问题是,如果我选中2个复选框,例如“物流”和“财务”,我将只得到与“物流”相关的结果,但我希望得到2个结果。。我让它像20分钟前一样工作,突然不工作了,我不明白为什么。谁能告诉我我错过了什么 这是我的密码:c#从checkboxlist中筛选sql查询的问题,c#,.net,visual-studio-2012,C#,.net,Visual Studio 2012,这是我的问题。我有一个文本框,其中可以实现关键字的研究。我有一个带有不同主题(ADV、Logistic、Finance、Administration)的复选框来过滤sql查询。如果我搜索关键字并选中“logistic”,则返回结果将仅与“logistic”相关。这很好,问题是,如果我选中2个复选框,例如“物流”和“财务”,我将只得到与“物流”相关的结果,但我希望得到2个结果。。我让它像20分钟前一样工作,突然不工作了,我不明白为什么。谁能告诉我我错过了什么 这是我的密码: string word
string word = tbSearch.Text;
string strSql = @"SELECT CAST(ID as VarChar(50)) ID, Aggregation, DateDerniereSolution, DateDescription, DerniereSolution, DescriptionDemande, FileDeTraitement, NomContact, Numero, SousRubrique, TitreDemande
FROM cfao_DigiHelp_index.DigiHelpData WHERE ( 1 = 1 )";
string selectedValue = "";
bool IsFirst = false;
strSql += @" AND (";
foreach (ListItem item in CheckboxID.Items)
{
if (item.Selected)
{
selectedValue += item.Value ;
if (IsFirst)
{
strSql += " OR ";
}
strSql += " SousRubrique Like '%" + selectedValue + "%' ";
IsFirst = true;
}
if (CheckboxID.SelectedIndex == -1)
{
Label2.Visible = true;
Label2.Text = "Veuillez cocher au moins une rubrique";
}
}
strSql += @" )";
这条线
selectedValue += item.Value ;
破坏您的查询,因为在每次循环中,您都会将选中项的值连接到selectedValue。只需使用item.Value
strSql += " SousRubrique Like '%" + item.Value + "%' ";
此外,如果选中的项目与SousRubrique内容完全匹配,则可以避免使用LIKE和wild搜索模式“%”,而只使用equal运算符
请记住,您需要严格控制checkedlistbox项的内容,因为如果您的用户能够为SousRubrique写入值,那么您的代码就会受到Sql注入攻击。您可以发布查询吗?您所说的
不再起作用了
您是否遇到任何错误或无法获得预期的结果输出?非常感谢!