Как мне написать поисковый запрос для пользовательского MaskedTextBox - PullRequest
1 голос
/ 23 марта 2019
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, который имеет пользовательский маскированный формат?

Ответы [ 2 ]

0 голосов
/ 26 марта 2019
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, в отличие от обычных текстовых полей, необходимо поставить условие для поиска.

0 голосов
/ 23 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...