Błąd przy odczycie z bazy mysql przy zastosowaniu OR

0

Mam problem z odczytem z sql podczas gdy nie ma jednej ze zmiennych, która wykorzystana jest w WHERE.
Czyli mam tak:

zapytanie.CommandText = ("SELECT * FROM klient WHERE nip = " + NIPP + " OR regon = " + REG + "");
 

Jeżeli zmienna NIPP LUB REG jest pusta wywala mi błąd.
Co jest nie tak w tym zapytaniu? Skoro jest OR.

0

zdebuguj sobie, zobaczysz, że z takiego klejenia zapytania gdy któraś zmienna jest pusta wychodzi niepoprawne zapytanie sql.
Edit: poczytaj o właściwości Parameters.

0

to jak to powinno być poprawnie? dotychczas pisałem w php.

0

Poczytaj o właściwości Parameters, tu masz nawet przykład: http://msdn.microsoft.com/pl-pl/library/system.data.sqlclient.sqlcommand.parameters%28v=vs.110%29.aspx
Dodatkowo Twój kod jest podatny na SQL injection.

0

Nie czaje tego. Czy może mi to z powyższego linku ktoś na moim przykładzie pokazać?

0

Tu masz lepszy link http://stackoverflow.com/a/9111669 bo to się tyczy mysql.

zapytanie.CommandText = "SELECT * FROM klient WHERE nip = @Nip OR regon = @Regon";
zapytanie.Parameters.Add(new MySqlParameter("Nip", NIPP));
zapytanie.Parameters.Add(new MySqlParameter("Regon", REG)); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1