【问题标题】:SQL database: search more than one columnSQL 数据库:搜索多个列
【发布时间】:2015-11-21 13:50:36
【问题描述】:

我得到了这个运行良好的代码:

DataView dv = new DataView(bazaDataSet.tbl_baza);

if (listBox1.SelectedIndex == 0)     
{
     dv.RowFilter = string.Format("Name LIKE '%{0}%'", txtSearchData.Text);
     dataGridView1.DataSource = dv;
}

但我正在尝试搜索多个列,但我无法让它为我工作。最后,我希望允许用户从 listBox 和搜索数据库中选择一个以上的项目。

【问题讨论】:

  • Column1 like '%a%' or Column2 like '%a%' ... ?
  • 谢谢伊万,完美运行!

标签: c# sql database sqlite search


【解决方案1】:

您可以构建可在您的RowFilter 中使用的字符串,例如

dv.RowFilter = string.Format("Name LIKE '%{0}%' AND City LIKE '%{1}%'", txtSearchData.Text, txtSearchDataCity.Text)

您必须遍历用户选择的搜索词,因此在 listBox 的情况下,您可以执行类似这样的操作,随时构建一个字符串

StringBuilder rowFilter = new StringBuilder();

foreach (var item in listBox1.SelectedItems)
{
    if(rowFilter.Length > 0)
    {
        rowFilter.Append(" or ");
        rowFilter.Append("Name LIKE '%" + item.ToString() "%'");
    }
}

那么为你的RowFilter

dv.RowFilter = rowFilter;

此链接也可能有所帮助 - DataView RowFilter Syntax

【讨论】:

  • 感谢您的详细描述,您和 Ivan 的推荐非常有效!
  • 由于答案完美,您介意接受它作为答案吗?
猜你喜欢
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 2022-01-06
  • 2021-07-25
  • 2023-03-20
相关资源
最近更新 更多