Загрузка...

Поиск по бд

Тема в разделе C# создана пользователем Minin_inactive4471240 12 мар 2022. 192 просмотра

  1. Minin_inactive4471240
    Minin_inactive4471240 Автор темы 12 мар 2022 3 5 сен 2021
    У меня есть параметры, внесённые в переменные, каждый из них может быть пустым вплоть до того, что лишь одна переменная будет заполнена параметром. Как можно реализовать поиск по базе данных только не пустыми переменными, а пустые пропускать?
    Поиск по бд я реализую сам, а вот как сделать так, чтобы пустые переменные не использовались в нём, я не знаю. Не писать же к каждому условию ещё по 11 условий
    [IMG]
     
  2. vtlstolyarov
    vtlstolyarov 13 мар 2022 474 8 янв 2022
    SQL
    WHERE
    (@SertificatNomer IS NULL OR SertificatNomer = @SertificatNomer)
    AND
    (@DateOfRelease IS NULL OR DateOfRelease = @DateOfRelease)
    ...
     
    1. Посмотреть предыдущие комментарии (5)
    2. Minin_inactive4471240 Автор темы
      vtlstolyarov, просто у меня была мысль их разбить, и для каждого создать List, соответственно, записывать в него данные из ридера
    3. vtlstolyarov
      Minin_inactive4471240, В следующий раз когда выложишь код картинкой я просто свалю из темы
    4. vtlstolyarov
      Minin_inactive4471240,
      C#
          const string sql = @"
      SELECT *
      FROM certificat
      WHERE
      (@NameOfSertificat IS NULL OR NameOfSertificat = @NameOfSertificat)
      AND
      (@DateOfRelease IS NULL OR DateOfRelease = @DateOfRelease)
      ";

      using (var connection = new MySqlConnection(connectionString))
      using (var cmd = new MySqlCommand(sql, connection))
      {
      cmd.Parameters.AddWithValue("@NameOfSertificat", string.IsNullOrEmpty(NameOfSertificat) ? DBNull.Value : (object)NameOfSertificat);
      cmd.Parameters.AddWithValue("@DateOfRelease", string.IsNullOrEmpty(DateOfRelease) ? DBNull.Value : (object)DateOfRelease);

      connection.Open();
      using (var reader = cmd.ExecuteReader())
      {
      while (reader.Read())
      {
      Console.WriteLine($"{reader["NameOfSertificat"]} {reader["DateOfRelease"]}");
      }
      }
      }
Загрузка...
Top