C# i SQL wyszukiwanie wartości w bazie

0

Witam, otóż mam mały problem. Robię do szkoły projekt w którym jednym z elementów ma być wyszukiwanie. pÓÓÓÓki co wpadłem na pomysł aby w dataSecie dodać metodę z zapytaniem:

SELECT id_klienta, nazwa_klienta, adres_klienta, nip, regon, telefon_klienta, [e-mail] FROM dbo.Klienci
WHERE 
( id_klienta LIKE @id_klienta +N'%') OR
( nazwa_klienta LIKE @nazwa_klienta +N'%') OR
( adres_klienta LIKE @adres_klienta +N'%') OR
( nip LIKE @nip +N'%') OR
(regon LIKE @regon +N'%') OR
( telefon_klienta LIKE @telefon_klienta +N'%') OR
( [e-mail] LIKE @mail +N'%')
 

a pod buttona dołączyć taki oto kod:

try
            {
                this.klienciTableAdapter.WyszukajAll(this.lasDataSet1.Klienci, System.Int32.Parse(IDKlientaSzukajKliencitextBox15.Text), NazwaKlientaSzukajKliencitextBox14.Text, AdresKlientaSzukajKliencitextBox13.Text, System.Int32.Parse(NIPKlientaWyszukajtextBox12.Text), System.Int32.Parse(RegoKlientaWyszukajntextBox11.Text), System.Int32.Parse(TelefonKlientaKliencitextBox10.Text), EmailKlientaKliencitextBox9.Text);
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
 

Teraz w skrócie napiszę jak sobie wyobrażałem że to powinno działać.
Otóż na formatce znajdują się textBoxy do których wpisujemy wartości, bądź jedną wartość i po naciśnięciu buttona Szukaj powinno się w DataGridzie wyświetlić to co wyszukało. Ta metoda działa dla wyszukiwania w przypadku np. Gdy danymi wejściowymi jest ciąg znaków bądź ciągi znaków natomiast jak dodałem możliwość szukania wartości liczbowych integer to przestało to wyszukiwanie działać. I tu pojawia się moje pytanie Co zrobiłem źle? Gdzie jest błąd? Siedzę trochę czasu już nad tym i nie mam pojęcia co jest nie tak tym bardziej że projekt się kompiluje normalnie. Używam Visual Studio 2008. Dziękuję za pomoc.

0

To LIKE działa też dla liczb? Pierwsze słyszę. Jeśli chcesz też wyszukiwać LIKE po ID, to najpierw ID zamień na stringa. Pomoże ci w tym funkcja CAST lub CONVERT...

0

to się robi inaczej - najczęściej generując zapytanie na podstawie tego, które pola od wyszukiwania są wypełnione. Inna możliwość to układanie warunków w ten deseń

WHERE
  (id = @id or @id IS NULL)
  AND (nazwa = @nazwa OR @nazwa IS NULL)
  AND ...

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