Загрузка...

Database search

Thread in C# created by Minin_inactive4471240 Mar 12, 2022. 215 views

  1. Minin_inactive4471240
    Minin_inactive4471240 Topic starter Mar 12, 2022 3 Sep 5, 2021
    У меня есть параметры, внесённые в переменные, каждый из них может быть пустым вплоть до того, что лишь одна переменная будет заполнена параметром. Как можно реализовать поиск по базе данных только не пустыми переменными, а пустые пропускать?
    Поиск по бд я реализую сам, а вот как сделать так, чтобы пустые переменные не использовались в нём, я не знаю. Не писать же к каждому условию ещё по 11 условий
    [IMG]
     
  2. vtlstolyarov
    SQL
    WHERE
    (@SertificatNomer IS NULL OR SertificatNomer = @SertificatNomer)
    AND
    (@DateOfRelease IS NULL OR DateOfRelease = @DateOfRelease)
    ...
     
    1. Minin_inactive4471240 Topic starter
      vtlstolyarov, можно пояснить, что он делает?
    2. vtlstolyarov
      Minin_inactive4471240, просто переведи на русский - условие выбора если (параметр @SerificatNomer пустой или поле SertificatNomer равно параметру @SertificatNomer) и (....)

      Смотри, возьмём для простоты одно поле A и один параметр @A - ты хочешь выбрать те строчки из таблицы у которых поле A равно параметру @A, но только в том случае если параметр @A не пустой - если перефразировать это условие в более "программисткий" язык то ты хочешь выбрать строку если параметр @A пустой без всяких доаполнительных проверок то есть одно из условий это "@A IS NOT NULL" теперь остался вопрос что делать если параметр не пустой - тогда его надо сравнить с полем "A = @A" и ты хочешь это строчку если выполниться или первое условие или второе - получится "@A IS NOT NULL OR A = @A"

      теперь усложним - что если поля 2? для второго поля нужно будет точно такое же условие "@B IS NOT NULL OR B = @B" и ты хочешь взять эту строчку только если и та и эта проверка прошла, то есть ты объеденяешь это через "И" - Проверка для A И Проверка для B, получится
      (@A IS NOT NULL OR A = @A) AND (@B IS NOT NULL OR B = @B)
    3. Minin_inactive4471240 Topic starter
      vtlstolyarov, У меня 11 полей, эти условия написать в одном using или как-то разделять? и как реализовать вывод всего этого через Ридер?
    4. View the next comments (5)
Top
Loading...