Regex listview элементы из базы данных - PullRequest
0 голосов
/ 05 ноября 2018

Здравствуйте, в моем последнем посте вы можете видеть, что я спросил кое-что о регулярном выражении, и это сработало.

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

это код того, как я заполняю свой список

   public void DataFromFolders3(string fileName = "*")
    {

        LV3.Items.Clear();

        SqlDataReader dr;
        string query = "select * from tblBestanden2 WHERE datum LIKE " + "'" + fileName + "'";
        SqlConnection con = new SqlConnection(connectionString);

        SqlCommand cmd = new SqlCommand(query, con);

        con.Open();
        dr = cmd.ExecuteReader();

        while (dr.Read())
        {

            LV3.Items.Add(dr["Name"]);

            Regex regex = new Regex("^zw1[0-9]*");

            if (regex.IsMatch(???))
            {
                LV3.Items.Remove(???);
            }

LV3 - мой список

Я пытался сделать это так

            if (regex.IsMatch(dr["Name"]))
            {
                LV3.Items.Remove(dr["Name"]);
            }

но это не работает.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Единственная проблема с кодом, который вы опубликовали, заключается в том, что устройство чтения данных возвращает объекты, а другим функциям требуются строки. Если вы конвертируете их так, это должно работать.

        if (regex.IsMatch(dr["Name"].ToString()))
        {
            LV3.Items.Remove(dr["Name"].ToString());
        }

Даже лучше, вместо добавления, а затем удаления, вы можете добавить, только если они не совпадают.

Regex regex = new Regex("^zw1[0-9]*");
while (dr.Read())
{
    if (!regex.IsMatch(dr["Name"].ToString()))
    { 
        LV3.Items.Add(dr["Name"].ToString());
    }
 }
0 голосов
/ 05 ноября 2018

Это может быть проблема SQL. Похоже, вы передаете имя файла * предложению LIKE, но это подстановочный знак DOS. SQL использует %_ для одиночных символов)

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