Strona 1 z 1

Problem z zapytaniem sql z wielu textboxow

PostNapisane: Śr sty 18, 2012 2:24 pm
przez imbart
Witam wszystkich.
Piszę ponieważ mam następujący problem. Mam bazę danych w sql server 2008, która mieści kolumny takie jak id, imie, nazwisko, pesel. W oknie windows form znajdują się 4 textboxy, które wyszukują dane z bazy (id_textbox, imie_textbox, ... ). Moim celem jest, aby w datagridview wyświetlały się dane z bazy, wyszukane za pomocą tych 4 textboxów.

Mój kod:
Kod: Zaznacz cały
string zapytanie = @"select * from mojaTabela where id = @id and imie = @imie and nazwisko = @nazwisko and pesel = @pesel";

SqlCommand kom = new SqlCommand(zapytanie, polaczenie);

kom.Parameters.Add("@id", SqlDbType.Int).Value = id_textBox.Text.Trim();
kom.Parameters.Add("@imie", SqlDbType.Text).Value = imie_textBox.Text.Trim();
kom.Parameters.Add("@nazwisko", SqlDbType.Text).Value = nazwisko_textBox.Text.Trim();
kom.Parameters.Add("@pesel", SqlDbType.Decimal).Value = pesel.textBox.Text.Trim();

SqlDataReader dr = kom.ExecuteReader();

DataSet ds = new DataSet();
DataTable dt = new DataTable("mojaTabela");
ds.Tables.Add(dt);
ds.Load(dr, LoadOption.PreserveChanges, ds.Tables[0]);

dataGridView.DataSource = ds.Tables[0];


Wszystko działa dobrze, wyszukuje dane z textboxow itp. Problem leży w tym, że każdy textbox musi być uzupełniony. Chciałbym, aby po wpisaniu tylko jednej wartości textboxa przeszukało bazę i znalazło(albo nie) wynik. Powiedzmy, że wpiszę imię Marek i wyszuka wszystkie wiersze gdzie imię jest Marek. Jednak gdy uzupełni się tylko tego jednego textboxa, zapytanie sql odczytuje wartości pustych textboxow i nawet gdy jest na jakiejś pozycji imię Marek, nie wyświetli go.
Próbowałem zmienić w zapytaniu sql AND na OR, wtedy przy wypełnionym tylko jednym textboxie (powiedzmy imie), działa dobrze, lecz gdy wpiszemy wartości " imie = Marek, nazwisko = Kowalski ", wyszuka nam wszystkich marków i wszystkich kowalskich, a nie konkretnie Marka Kowalskiego.

Myślę, że problem zostałby rozwiązany gdyby przy łączniku AND w zapytaniu sql wartości textboxow pustych nie zostałyby odczytywane i pomijane w zapytaniu. Chyba, że jest jeszcze jakiś inny sposób. I tu właśnie moja prośba do bardziej zaawansowanych programistów C#. Każda pomoc się przyda, z góry dziękuję.

Re: Problem z zapytaniem sql z wielu textboxow

PostNapisane: Śr sty 25, 2012 4:24 pm
przez ressiv5

Re: Problem z zapytaniem sql z wielu textboxow

PostNapisane: Śr sty 25, 2012 7:24 pm
przez Marcin Miga
Już dostał odpowiedź: http://peb.pl/programowanie/1176394-c-p ... sql-z.html

pozdrawiaMM

Re: Problem z zapytaniem sql z wielu textboxow

PostNapisane: Cz sty 26, 2012 11:10 am
przez imbart
tak, na peb już mi pomogli, ale dzięki za artykuł ;) Pozdrawiam