Wątek przeniesiony 2014-02-27 14:19 z C# i .NET przez ŁF.

Wyszukiwanie danych w textBox

0

Chcę wyszukać w bazie danych dowolne imię i nazwisko w jednym textBox1.

Napisałem tak:

"select *from osoba where imię like('" + textBox1.Text + "%') and '' like('" + textBox1.Text + "%') and nazwisko like('" + textBox1.Text + "%') "

Powiedzmy przykładowo, wpisuje "Jan Kowalski" to wyświetlają nam rekordy z tymi danymi w bazie danych.

Kod mam raczej ok. Obawiam się, że z poleceniem select coś jest nie tak.

0
  1. Czemu brakuje spacji po gwiazdce i po co te dwa apostrofy przed drugim like?
  2. Nie ładniej formatować string tak?
string commandString = string.Format("select * from osoba where imię like('{0}%') and '' like('{0}%') and nazwisko like('{0}%') ", textBox1.Text);
  1. A w ogóle poprawnie, to się robi tak: http://msdn.microsoft.com/pl-pl/library/system.data.sqlclient.sqlcommand.parameters%28v=vs.110%29.aspx
0

I co działa :P ?

0

Tutaj raczej warto zastosować w klazuli where OR, a nie AND :) select * from osoba where nazwisko like '%%' OR imie like ''%%'

  • bo przecież nie wiemy czy osoba wpisująca wartosc do textbox szuka po imieniu czy nazwisku...
    wg mnie ciężko było by znaleźć w imieniu i (AND) nazwisku podobny ciąg znaków :P
0

Uzyj jakiegos ORM (EF?), bo to co napisales pozwoli latwo zrobic np. dropa na calej bazie danych.

Co to za kwiatek `` like('" + textBox1.Text + "%')? like 'sth%' zawsze zwroci false.

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