C# Mam problem z SELECT w bazie


(Lukasz Plonka) #1

Mam program w którym sprawdzam za pomocą selecta sprawdza czy numer wpisany do textboxa jest równy numerowi zwruconemu przez selecta Wszystko działa spoko do mometu gdy selekt niezwróci żadnej wartośći wtedy wywala bląd

a mój program powinien tak zadzialać ze jeśli selekt znajdzie w bazie numer to ma wyswietlić komunikat

a jesli nie znajdzie to powinien dodac numer do bazy if (this.textBox1.Text == this.samochodTableAdapter1.Wyszukiwanie_Samochodu(int.Parse(textBox1.Text)).ToString())

{ MessageBox.Show("Podany samochód jest juz w bazie"); }

else

{formuła dodajaca do bazy} błąd wywala jeśli select nie znajduje żadnej wartośći


(Ryan) #2

Przeczytaj regulamin i ten wątek:

http://forum.dobreprogramy.pl/viewtopic.php?t=152275

Szkoda, że nie podałeś żadnego użytecznego fragmentu kodu. Jedyne co mogę polecić to użyj SELECta w takiej postaci:

SELECT count(*) FROM tabela WHERE wartosc = @wartosc_uzytkownika

Zwrócona zostanie z bazy ilość wystąpień takiego numeru w bazie. Jeśli 0 - nie występuje. Jeśli 1 - występuje. Jeśli więcej niż 1 - masz błąd w danych w bazie, jeśli starałeś się mieć tylko jedną instancję numeru a masz wiele.


(Lukasz Plonka) #3

MAM TAkiego selecta

SELECT nrNadwozia from Samochod WHERE NrNadwozia=@b

Select porównuje numer wpisany do textboxa i sparwdza go z powyższym selektem i mam problem kiedy numeru nie ma wbazie bo nie moge go dodać...:frowning: bo select powyzszy zwraca NULL

if (this.textBox1.Text == this.samochodTableAdapter1.WyszykajNadwozie(int.Parse(textBox1.Text)).ToString())

                    { MessageBox.Show("Podany samochód jest juz w bazie"); }

Złączono Posta : 22.06.2007 (Pią) 15:55Zrobiłem selecta select count(*)from samochod where nrnadwozia=wartosc nazwalem go WyszukajNadwozie i mam problem ponieważe select zwraca wartosc 1 lub zero a jak wpisać w kodzie ze jesli wartosc =1 wtedy wyświetl samochod jest w bazie a jak 0 to samochodu nie ma


(Ryan) #4

0 może być poprawną wartością ID (zależy jak leży).

SELECT

    CASE

        WHEN nrNadwozia IS NULL THEN -1

        ELSE nrNadwozia

    END

FROM Samochod

WHERE nrNadwozia=@b

Dostaniesz -1 jeśli nie istnieje, poprawne ID jeśli istnieje. Wciąż nie rozumiem dlaczego detekcja 1/0 nie pasuje Ci. Twoja sprawa.