Zaawansowane wyszukiwanie i dynamiczne zapytania

Forum poświęcone językowi C#.

Moderator: xxSlayeRxx

Zaawansowane wyszukiwanie i dynamiczne zapytania

Sponsor

Sponsor
 

Zaawansowane wyszukiwanie i dynamiczne zapytania

Postprzez slawekh666 » Pn cze 09, 2014 7:22 pm

1) Chce zrobić zaawansowaną wyszukiwarkę podobną jak np w bibliotekach. Czyli, że np wyszukiwanie książek po autorach lub gatunkach czy po autorach i gatunkach itd. I teraz pytanie: sprawdzać za pomocą funkcji if w którym textboxie jest tekst, w której liście została wybrana wartość, czy jest jakiś inny sposób na to?

2) Może mi ktoś podpowiedzieć jak napisać obsługę bazy do powyższej wyszukiwarki, żeby np używając sprawdzania przy pomocy if nie klepać gotowych zapytań dla każdej możliwości. Jeśli takowe istnieje.
slawekh666
Member
 
Posty: 33
Dołączył(a): Śr paź 09, 2013 6:45 am

Re: Zaawansowane wyszukiwanie i dynamiczne zapytania

Postprzez djszalas » Pn cze 09, 2014 8:38 pm

Zawsze mozesz wykorzystać StartWith lub Contains ze stringa na podstawie wartości z bazy. Kiedyś tak robiłem ale nie pamietam jak działało przy dużej ilości danych
djszalas
Member
 
Posty: 61
Dołączył(a): N maja 20, 2012 10:38 am

Re: Zaawansowane wyszukiwanie i dynamiczne zapytania

Postprzez ToNi » Wt cze 10, 2014 9:58 am

Mozesz zrobic sobie dynamiczny filtr, sklejany z tego co user wrowadzil w kontrolkach. Np w ten sposob, ze wrzucasz kontrolki na jakis panel, czy cos, ustawiasz kazdej z nich np Tag zgodny z kolumną na bazie i potem zklejasz filtr:
Kod: Zaznacz cały
string filtr = "WHERE ";

foreach(Control ctrl in panel.Controls)
{
if(Ctrl is TextEdit && Ctrl.EditValue.IsNotNullOrEmpty)
{
filtr += String.Format("{0} LIKE %{1}%", Ctrl.Tag, Ctrl.EditValue);
}
}

filtr = filtr == "WHERE " ? string.empty: filtr;


To tak na szybko klepane z palca, wiec niekoniecznie sie skompiluje, tutaj chodzi o taki ogolny zamysl. Jednak jeszcze lepiej i prosciej byloby skorzystac z jakiegos ORMa, np Entity;)
ToNi
Member
 
Posty: 116
Dołączył(a): Cz lis 15, 2012 11:06 pm

Re: Zaawansowane wyszukiwanie i dynamiczne zapytania

Postprzez slawekh666 » Wt cze 10, 2014 4:52 pm

Dzięki. W wolnym czasie poczytam o ORM-ach.

A wie może ktoś czemu to nie działa?
Kod: Zaznacz cały
        string text1;
        string text2;
        string tymczasowy;
        int i, j, k = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            text1 = textBox1.Text;
            text2 = textBox2.Text;
            switch (1)
            {
                case 1:
                    for (; i <= text1.Length; i++)
                    {
                        if (text1[i] != ' ')
                        {
                            tymczasowy = tymczasowy + text1[i];
                        }
                        else
                        {
                            goto case 2;
                        }

                    }
                        break;
                case 2:
                        j = 0;
                    for (k = 0; k < text2.Length; k++)
                    {
                        if (text2[i] == tymczasowy[j])
                        {
                            if (j == tymczasowy.Length-1)
                            {
                                textBox3.Text = tymczasowy;
                                i++;
                                tymczasowy = null;
                                goto case 1;
                            }
                            else
                            {
                                if (j >= tymczasowy.Length)
                                {
                                    j = 0;
                                }
                                else
                                {
                                    j++;
                                }
                            }
                        }
                        else
                        {
                            j = 0;
                        }
                    }break;
                        break;
            }
        }


w 2 casie wywala mi przekroczenie zakresu mimo że indeksy są wyzerowane. ma to porównywać tekst międzi 1 a 2 textboxem i w 3 wpisywać powtarzające się słowa
slawekh666
Member
 
Posty: 33
Dołączył(a): Śr paź 09, 2013 6:45 am

Re: Zaawansowane wyszukiwanie i dynamiczne zapytania

Postprzez xxSlayeRxx » Wt cze 10, 2014 11:51 pm

jesli masz text length.. to przy 10 znakach == 10 ale jak uzywasz indeksu to jest od 0-9 wiec skoro masz i <= 10 a max text[i] == 9 to Ci wykracza
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Zaawansowane wyszukiwanie i dynamiczne zapytania

Postprzez slawekh666 » Śr cze 11, 2014 5:15 am

racja tu też byk, ale kopiowałem 2 case z innej aplikacji i zapomniałem zmienić i na k w tej linji if (text2[i] == tymczasowy[j])
slawekh666
Member
 
Posty: 33
Dołączył(a): Śr paź 09, 2013 6:45 am

Re: Zaawansowane wyszukiwanie i dynamiczne zapytania

Sponsors

Sponsor
 


Powrót do C#

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 11 gości