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

Punjenje comboboxa sa datasetom

[es] :: .NET :: .NET Desktop razvoj :: Punjenje comboboxa sa datasetom

[ Pregleda: 2728 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

program3r
Ivan Ivić
student

Član broj: 164258
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon Punjenje comboboxa sa datasetom19.04.2008. u 11:02 - pre 194 meseci
Naime, kako da popunim combobox sa rezultatima upita kad imam vise do jedne jednog atributa u rezultatu
Imam primjer koda:
Code:

            konekcija.Open();
            //Ovo je z adodavanje u comboOtac
          

            int brojzapisa = Convert.ToInt32(txtID.Text);

            string upit = "SELECT Osoba.OsobaID, Osoba.OsobaPrezime, Osoba1.OsobaIme,  Osoba.OsobaIme ,Mjesto.MjestoNaziv, Osoba.DatumRodenja ";
            upit += "FROM (Osoba LEFT JOIN Osoba AS Osoba1 ON Osoba.OtacID=Osoba1.OsobaID)  ";
            upit += "LEFT JOIN Mjesto ON Osoba.MjestoRodjenjaID=Mjesto.MjestoID WHERE (Osoba.Spol like 'M') AND Osoba.OsobaID = " + brojzapisa;
           
            SqlDataAdapter dAdapter = new SqlDataAdapter(upit, konekcija);
           
            DataSet dset = new DataSet();
            dAdapter.Fill(dset, "table");

            this.comboOtac.DataSource = dset;
            this.comboOtac.DisplayMember =  // "table.OsobaID" + "table.OsobaPrezime + table.OsobaIme + table.OsobaIme + table.MjestoNaziv + table.DatumRodenja"; 
            if (comboOtac.SelectedItem == null)
                comboOtac.Text = "";
           konekcija.Close();
}

Znaci unutar comboboxa moram prikazati ID + Ime Osobe + Ime Oca + Prezime Osobe + Mjesto stanovanja i datum rodenja


Unaprijed hvala na odgovoru

[Ovu poruku je menjao Shadowed dana 19.04.2008. u 15:46 GMT+1]
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.eunet.yu.



+171 Profil

icon Re: Punjenje comboboxa sa datasetom19.04.2008. u 11:38 - pre 194 meseci
Ili spajaj stringove

Code:

SELECT Osoba.OsobaID + ' ' + Osoba.OsobaPrezime + ' '  ' ' + Osoba1.OsobaIme + ' ' + Osoba.OsobaIme + ' ' + Mjesto.MjestoNaziv + ' ' + Osoba.DatumRodenja 
...


Vodi samo racuna o tipovima podataka, SQL server ce ti nesto implicitno konvertovati a nesto ne.


ili nadji neki 3rd party combobox koji to moze da radi, ili menjaj kontrolu ili uci WPF i lepo binduj ComboBoxItem na DataTemplate :)


Jos nesto, ovo vazi za desktop.
 
Odgovor na temu

Djoks
Djordje Najdanovic
Software Developer
Azalea Maritime

Član broj: 1630
Poruke: 268
85.94.122.*

Sajt: www.azalea-maritime.com


Profil

icon Re: Punjenje comboboxa sa datasetom19.04.2008. u 21:56 - pre 194 meseci
Ako će ti kolone zatrebati i odvojene - nemoj ih spajati u SQL upitu, već spajanje vrši putem dodatne kolone tabele i Expression svojstva:

Code:

SqlDataAdapter da = new SqlDataAdapter("select EmployeeID, FirstName, LastName, Title from Employees", "data source=.;integrated security=true;initial catalog=Northwind;");
DataTable dt = new DataTable();
da.Fill(dt);
dt.Columns.Add("ColumnForCombo", typeof(String), "FirstName + ' ' + LastName + ' (' + Title + ')'");

comboBox1.DataSource = dt;
comboBox1.DisplayMember = "ColumnForCombo";
comboBox1.ValueMember = "EmployeeID";


Vidjećeš u kod-u gdje dodajem novu kolonu u datatable (može to biti i dataset.datatable, ali zašto komplikovati), i dodjeljujem svojstvo Expression-a (vrlo interesantna osobina - treba o tome nešto više pročitati u MSDN-u, jer omogućava pribavljanje podatka i iz data tabela iz relacija sa Parent, Child funkcijama, zatim matematičke operacije itd...).

Da ne dužim mnogo - sve je u kod-u. :)
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Punjenje comboboxa sa datasetom

[ Pregleda: 2728 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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