【问题标题】:How do I code a search query for a custom MaskedTextBox如何为自定义 MaskedTextBox 编写搜索查询代码
【发布时间】:2019-03-23 14:31:00
【问题描述】:
Using (SqlConnection sqlconn = new SqlConnection(@"Data Source=DESKTOP-IIBSL6N;Initial Catalog=sales_management;Integrated Security=True"))
{
    SqlDataAdapter sqlad = new SqlDataAdapter("select * From Vehicle", sqlconn);
    DataTable dtbl = new DataTable();
    sqlad.Fill(dtbl);
    DataView dv = dtbl.DefaultView;
    dv.RowFilter = string.Format("Plate_Number like '%__ - _ - ___ - __%'", searchcompany.Text);
    vehiclegrid.DataSource = dv.ToTable();
} 

我有问题:"Plate_Number like '%__ - _ - ___ - __%'"

我不知道这是否正确:00 - 000 - a - 00 自定义格式。
如果正确,如何在 DataGridView 中搜索具有自定义掩码格式的列?

【问题讨论】:

  • 搜索数据表,表中的行将与DataView中的行相同:dtbl.AsEnumerable().Where(x => x.Field("Plate_Number").Contains("00 - 000 - a - 00").ToList();
  • 您是在寻找文字 _ 字符还是应该匹配例如数字或字母
  • @AshkanMobayenKhiabani 这不是字面意思

标签: c# sql sql-server winforms


【解决方案1】:

Sql 接受正则表达式(但有点受限),您可以执行以下操作:

Plate_Number like '%[0-9][0-9] - [0-9] - [0-9][0-9][0-9] - [0-9][0-9]%'

所以:

SqlDataAdapter sqlad = new SqlDataAdapter("select * From Vehicle where Plate_Number like '%[0-9][0-9] - [0-9] - [0-9][0-9][0-9] - [0-9][0-9]%'", sqlconn); 

这是LIVE DEMO

【讨论】:

  • 如果我想要其中一个 _ 是字母,我应该编码什么而不是 [0-9]?
  • [a-zA-Z] 而不是 [0-9]
  • 我添加了一个live dmo
  • 因为你是波斯人 [a-zA-Z] 这适用于波斯字母吗?
  • 它应该是诚实的,我没有在 sql server 中检查波斯正则表达式
【解决方案2】:
using (SqlConnection sqlconn = new SqlConnection(@"Data Source=DESKTOP-IIBSL6N;Initial Catalog=sales_management;Integrated Security=True"))
        {
            if(searchplate.MaskFull==true)
            {
                SqlDataAdapter sqlad = new SqlDataAdapter("select * From Vehicle  ", sqlconn);
                DataTable dtbl = new DataTable();
                sqlad.Fill(dtbl);
                DataView dv = dtbl.DefaultView;
                dv.RowFilter = string.Format("Plate_Number like '%{0}%'", searchplate.Text);
                vehiclegrid.DataSource = dv.ToTable();  }
            }

问题在于,对于 maskedtextbox,与普通文本框不同,您必须设置条件才能进行搜索。

【讨论】:

    猜你喜欢
    • 2019-06-27
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多