Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u

[es] :: .NET :: .NET Desktop razvoj :: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u

Strane: 1 2

[ Pregleda: 5851 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u15.03.2010. u 18:03 - pre 171 meseci
Hteo bih da zamolim nekog ako moze da mi pomogne oko pretrage u C#-u,
radi se o sledecoj stvari...
Imam tabelu korisnik u bazi, sa njenim atributima, npr. naziv firme(koji je kriterijum za pretragu)...
Stvar je sledeca: kad upisem neko pocetno slovo u textbox treba da mi se u listview-u prikaze samo
naziv(i) koji pocinje sa tim slovom...

Hvala unapred!!!
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
217.16.132.*

ICQ: 325309560


+2 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u15.03.2010. u 18:47 - pre 171 meseci
Ne radim u c#, ali evo kako sam to resio u vb.net, malo ga samo prilagodi:

Code:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        ListView1.Items.Clear()
        If TextBox1.Text = Nothing Then
            ListView1.Items.Clear()

            Try
                oledbcon.Open()

                str = "SELECT * FROM Korisnik ORDER BY Ime"
                cmd = New OleDbCommand(str, oledbcon)
                objRead = cmd.ExecuteReader


                While objRead.Read


                    lv = Me.ListView1.Items.Add(objRead("Ime").ToString)
                    lv.SubItems.Add(objRead("Prezime").ToString)
                    

                End While


                objRead.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                If ListView1.Items.Count = 0 Then

                Else
                    ListView1.Items(0).Selected = True
                    ListView1.Select()
                End If
                oledbcon.Close()
            End Try
        End If
        Try

            oledbcon.Open()

            str = "SELECT * FROM Korisnik WHERE Ime LIKE'" & TextBox1.Text & "%'"
            cmd = New OleDbCommand(str, oledbcon)
            objRead = cmd.ExecuteReader


            While objRead.Read


                lv = Me.ListView1.Items.Add(objRead("Ime").ToString)
                lv.SubItems.Add(objRead("Prezime").ToString)
                
            End While


            objRead.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally

            oledbcon.Close()
        End Try
    End Sub




"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u15.03.2010. u 19:59 - pre 171 meseci
Za prevod vb u c# koristi
http://www.developerfusion.com/tools/convert/vb-to-csharp/
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Laki123

Član broj: 16706
Poruke: 98
*.adsl-a-6.sezampro.rs.



+4 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u15.03.2010. u 22:30 - pre 171 meseci
Primer u C#. Prva tri reda su globalna za celu formu. Kod učitavanja forme, pomoću data adaptera učitaš podatke iz baze u data set. Zatim napraviš objekat DataView. U događaju TextChanged samo pozivaš svojstvo RowFilter. Znači ne moraš svaki put uzimati podatke iz baze, što će verovatno imati efekta na brzinu, mana je naravno što ćeš celu tabelu imati u memoriji.
Code:

OleDbConnection konekcija = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Database1.mdb");
DataSet ds = new DataSet();
DataView pogled;

public Form1()
{
    InitializeComponent();
    string upit = "SELECT * FROM Korisnik";
    OleDbDataAdapter adapter = new OleDbDataAdapter(upit, konekcija); 
    adapter.Fill(ds);
    pogled = new DataView(ds.Tables[0])
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
    pogled.RowFilter = "[Naziv firme] LIKE '" + textBox1.Text + "%'";
    dataGridView1.DataSource = pogled;
}


I drugi način je sličan kao u prethodnom postu:
Code:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    OleDbConnection OleDbKonekcija = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Database1.mdb");
    OleDbCommand komanda = OleDbKonekcija.CreateCommand();
    DataTable rezultat = new DataTable();
    komanda.CommandText = "SELECT * FROM Korisnik WHERE [Naziv firme] LIKE '" + textBox1.Text + "%'";
    try
    {
        komanda.Connection.Open();
        OleDbDataReader citac = komanda.ExecuteReader();
        rezultat.Load(citac); //ucitavanje podataka u DataTable
        citac.Close();
        dataGridView1.DataSource = rezultat;
    }
    catch
    {
    }
    finally
    {
        komanda.Connection.Close(); //na kraju se zatvara konekcija
    }
}


Uf, sad tek vidim da tebi treba prikaz u ListView, a ja korisio GridView

[Ovu poruku je menjao Laki123 dana 15.03.2010. u 23:40 GMT+1]
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u17.03.2010. u 10:47 - pre 171 meseci
Hvala puno na odgovoru, znaci mi, samo ako bi neko mogao da mi pojasni kako bi to mogao da uradim sa ListView kontrolom,
umesto DataGridView-a.
Hvala unapred.....
 
Odgovor na temu

Laki123

Član broj: 16706
Poruke: 98
*.adsl-a-4.sezampro.rs.



+4 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u19.03.2010. u 12:32 - pre 171 meseci
Citat:
neskokejdz: Hvala puno na odgovoru, znaci mi, samo ako bi neko mogao da mi pojasni kako bi to mogao da uradim sa ListView kontrolom,
umesto DataGridView-a.
Hvala unapred.....


Svojstvo kontrole listView1 View možeš postaviti na List.
Code:

private void textBox1_TextChanged_1(object sender, EventArgs e)
{
    listView1.Items.Clear();
    OleDbConnection OleDbKonekcija = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Database1.mdb");
    OleDbCommand komanda = OleDbKonekcija.CreateCommand();
    komanda.CommandText = "SELECT * FROM Korisnik WHERE [Naziv firme] LIKE '" + textBox1.Text + "%'"; //umesto * možeš navesti samo [Naziv firme]
    try
    {
        komanda.Connection.Open();
        OleDbDataReader citac = komanda.ExecuteReader();
        while (citac.Read())
        {
            listView1.Items.Add(citac["Naziv firme"].ToString());
        }
    }
    catch
    {
    }
    finally
    {
        komanda.Connection.Close(); //na kraju se zatvara konekcija
    }
}
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u22.03.2010. u 04:48 - pre 171 meseci
Video sam da je kod u redu, probao ali nece da pretrazuje verovatno zbog naziva kolone u bazi podataka...
Kriterijum po kom zelim da mi se pretrazuje u textboxu je ImeDuznika(ovo je tacan naziv kolone u tabeli u bazi podataka)...
Znaci npr. imam sacuvanog duznika pod nazivom Kristal, kada ukucam u textbox K, zelim da mi ispise sve duznike pod tim pocetnim slovom...

Sta treba tacno napisati u onom delu koda gde je SQL upit???

Jer je to kljucna stvar....
Hvala na pomoci, znacila mi je jako puno, pogotovu zbog ucenja!!!
 
Odgovor na temu

Laki123

Član broj: 16706
Poruke: 98
*.adsl-a-1.sezampro.yu.



+4 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u22.03.2010. u 09:09 - pre 171 meseci
Pa samo umesto [Naziv firme] staviš ImeDuznika, a naziv tabele ako nije Korisnik, onda i to izmeniš (u uglastu zagradu stavljaš ako ima razmak između).
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u22.03.2010. u 10:34 - pre 171 meseci
Sve je to ok, i razumem ga, ali zasto mi kad unesem neko slovo u textbox on prikaze prazan Listview?
Znaci ako je duznik Kristal, ja kucam K, a on pokazuje prazan Listview...
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u22.03.2010. u 10:42 - pre 171 meseci
Pa zbog ovoga
Code:
komanda.CommandText = "SELECT * FROM Korisnik WHERE [Naziv firme] LIKE '" + textBox1.Text + "%'"; //umesto * možeš navesti samo [Naziv firme]


Ovo selektuje sve iz tabele Korisnik gde je jedini uslov uneti text iz textbox-a i popunjuje listview.
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u22.03.2010. u 18:07 - pre 171 meseci
Razumem to.. I kad stavim ovako, umesto * ImeDuznik

komanda.CommandText = "SELECT ImeDuznik FROM Duznik WHERE ImeDuznik LIKE '" + tbDuznik.Text + "%'"; //umesto * možeš navesti samo [Naziv firme]

ne radi opet... Ne znam zasto???
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
217.16.134.*

ICQ: 325309560


+2 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u22.03.2010. u 20:22 - pre 171 meseci
Upload-uj tvoj projekat ovde, pa da vidimo.
"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u23.03.2010. u 00:19 - pre 171 meseci
Evo ga projekat....
Prikačeni fajlovi
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
217.16.134.*

ICQ: 325309560


+2 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u23.03.2010. u 07:54 - pre 171 meseci
Prvo ne treba ti:

Code:
komanda.CommandText = "SELECT ImeDuznik FROM Duznik WHERE ImeDuznik LIKE '" + tbDuznik.Text + "%'"; //umesto * možeš navesti samo [Naziv firme]


nego samo
Code:
komanda.CommandText = "SELECT * FROM Duznik WHERE ImeDuznik LIKE '" + tbDuznik.Text + "%'"; //umesto * možeš navesti samo [Naziv firme]



Drugo mozes da probas da proglasis na primer:

Code:
ListViewItem lv = new ListViewItem();


pa tek onda:

Code:
while (citac.Read())
                {
                    lv = listViewDuznici.Items.Add(citac["ImeDuznik"].ToString());
                    
                }


I stavljaj exceptions za testiranja.Doduse to sam uradi jer nije isto kod mene za VB.NET i C#.






"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u23.03.2010. u 10:04 - pre 171 meseci
Jedno pitanje neskokejdz.
Zasto konekcioni string cuvas u txt fajlu?

Mislim na ovo
Code (csharp):
 
public static string CitajFajl()
        {
            string conn;

            TextReader tr = new StreamReader("conn_str.txt");
            conn = tr.ReadLine();
            tr.Close();

            return conn;
        }

http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u23.03.2010. u 10:59 - pre 171 meseci
Opet nece, ne znam samo zasto on kad upisem neko slovo u textbox, skroz isprazni listview, a ne ostavi u njemu
onaj naziv koji zadovoljava uneti karakter u pretrazi?!
 
Odgovor na temu

neskokejdz
Pancevo

Član broj: 174831
Poruke: 62
195.252.79.*



Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u23.03.2010. u 11:00 - pre 171 meseci
To mi je neka praksa za lakse snalazenje, sto?
Mislim mozda da to ne valja?
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u23.03.2010. u 11:12 - pre 171 meseci
Pitam onako, ja ga cuvam u app.configu ili kao string u sorsu.
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Laki123

Član broj: 16706
Poruke: 98
*.adsl-3.sezampro.yu.



+4 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u24.03.2010. u 12:04 - pre 171 meseci
Ne znam zašto ne radi, verovatno je problem u SQL komandi, ovaj primer radi u Accessu. Možda probaj u samom SQL Serveru da izvršiš primer SQL naredbe, npr. SELECT ImeDuznik FROM Duznik WHERE ImeDuznik LIKE 'k%'.

Inače probaj možda da prilagodiš onaj prvi primer što sam dao, s obzirom da koristiš dataset i imaš metodu za prikaz PrikaziDuznike().
Nešto ovako.
Code:

KamateDataSet kds = new KamateDataSet();
DuznikTableAdapter dta = new DuznikTableAdapter();
DataView pogled; // ovo je dodato u tvom kodu

private void frmDuznik_Load(object sender, EventArgs e)
{
  dta.Fill(kds.Duznik);
  pogled = new DataView(kds.Duznik); // ovo je dodato u tvom kodu
  PrikaziDuznike();
}

private void tbDuznik_TextChanged(object sender, EventArgs e)
{
    pogled.RowFilter = "ImeDuznik LIKE '" + tbDuznik.Text + "%'";
    PrikaziDuznike();
}

private void PrikaziDuznike()
{
    listViewDuznici.Items.Clear();

    //Prikazivanje podataka o duznicima u ListView-u pomocu tipiziranog DataSet-a
    foreach (KamateDataSet.DuznikRow vrsta in pogled.Table.Rows) // ovo je izmenjeno u tvom kodu
    {
        ListViewItem lvi = new ListViewItem(vrsta.ImeDuznik);
        lvi.SubItems.Add(vrsta.MestoDuz);
        lvi.SubItems.Add(vrsta.FixTel);
        //U Tag smestamo id duznika
        lvi.Tag = vrsta.DuznikID;
        listViewDuznici.Items.Add(lvi);
    }
}


Nisam siguran da li će ovo raditi, ali možda probaj dodatno da prilagodiš PrikaziDuznike(), ili probaj kroz debager da vidiš zašto onaj prethodni primer ne radi.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
91.148.82.*



+18 Profil

icon Re: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u24.03.2010. u 14:48 - pre 171 meseci
Ajd stavi i bazu ako nije problem...pa da vidimo sta se desava.
Sto se tice connection stringa mozes i ovako

app.config
Code:

 <appSettings>
    <add key="sqlConnectionString" value="Data Source=.\SQLEXPRESS;Initial Catalog=kamate;Integrated Security=True"/>
  </appSettings>


i u kodu
Code:

SqlConnection objConnection = new SqlConnection(ConfigurationSettings.AppSettings["sqlConnectionString"]);
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: C# pretraga korisnika (iz baze) kroz textbox i prikaz u listview-u

Strane: 1 2

[ Pregleda: 5851 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.