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

Problem oko comboxa

[es] :: .NET :: .NET Desktop razvoj :: Problem oko comboxa

[ Pregleda: 1542 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.180.*



+1 Profil

icon Problem oko comboxa31.10.2008. u 08:11 - pre 188 meseci
Imam jedan problem, pa sam se stoga, ponovo obratio forumu. Rec je o tome da imam jednu formu i u okviru nje imam textboxo-ve i jedan combox.Takodje tu sam formu povezao sa bazom u okviru koje imam jednu tabelu. U okviru te forme imam kod za combox i njegovo punjenje podacima iz baze, i to je sve ok. Kod punjenja i prikaza coboxa dao sam na kraju ove poruke. U comboxu korisnik moze da odabira ponudjene opcije (u ovom slucaju mesta stanovanja) ali problem nastaje kada njegovog mesta stanovanja nema u bazi e tada bi korisniku trebalo da se omoguci da u istom tom comboxu upise svoje mesto stanovanja a da se pritom to mesto automastki upisuje i u bazu. Mislim da sam donekle problem opisao onako kako treba, a verujem da su iskusniji programeri vec odavno upuceni u nacin resavanja ovog problema, pa vas molim za pomoc 
KOD COMBOXA:
Klasa frmUpisPacijenta:
public partial class frmUpisPacijenta : Form
{
public frmUpisPacijenta()
{
InitializeComponent();
}

// Objekti klase
clsProcedures clsProd = new clsProcedures();

private void Save_Click(object sender, EventArgs e)
{
clsProd.AddOsnovnihPodataka(txtIme.Text, txtIme_oca.Text, txtPrezime.Text, txtJMBG.Text, dtpDatumRodjenja.Text,txtAdresa.Text, (string) cmbMesto.SelectedValue, rbntM.Checked, rbntZ.Checked);
MessageBox.Show("Uspešno ste uneli pacijenta.","Uspešan
unos",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.Close();
}
public void FillcmbMesto()
{
clsProcedures cls = new clsProcedures();
dsOsnovniPodaci ds = new dsOsnovniPodaci();

cmbMesto.DataSource = cls.ListGradova(ds).Tables[0].DefaultView;
cmbMesto.DisplayMember = "[Mesto stanovanja]";
cmbMesto.ValueMember = "ID";
}
}
Klasa clsProcedures:
public class clsProcedures : ISLab.clsSqlConnection
{
public clsProcedures()
{}

public void AddOsnovnihPodataka(string ime, string ime_oca, string prezime, string jmbg, string datum_rodjenja,
string adresa, string mesto, string drzavljanstvo, bool pol_M, bool pol_Z)
{
string sSQL;
sSQL = "INSERT INTO tblOsnovniPodaci(Ime, [Ime oca], Prezime, JMBG, [Datum rođenja], [Adresa stanovanja], ";
sSQL += "[Mesto stanovanja], [Pol M], [Pol Ž])";
sSQL += "VALUES";
sSQL += "('" + ime + "', '" + ime_oca + "', '" + prezime + "', '" + jmbg + "',";
sSQL += "'" + datum_rodjenja + "', '" + adresa + "', '" + mesto + "',";
sSQL += "'" + (pol_M ? "1" : "0") + "', '" + (pol_Z ? "1" : "0") + "')";
ExecuteSQL(sSQL);
}

//Prikaz comboxa Gradova
public DataSet ListGradova(DataSet ds)
{
string sSQL = "SELECT * FROM tblOsnovniPodaci ORDER BY [Mesto stanovanja] ASC";
DataSet rtnDs = ds;
FillDataSet(rtnDs, sSQL, "tblOsnovniPodaci");
return rtnDs;
}
}

Klasa clsSqlConnection:

public class clsSqlConnection
{
public SqlConnection conn;
private string strconn;

protected DataSet FillDataSet (DataSet dset, string sSQL, string tbl)
{
SqlCommand cmd = new SqlCommand (sSQL,conn);
SqlDataAdapter adapter = new SqlDataAdapter (cmd);
try
{
adapter.Fill(dset,tbl);
}
finally
{
conn.Close();
}
return dset;
}
}

 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.adsl.beotel.net.

ICQ: 20785904


+4 Profil

icon Re: Problem oko comboxa01.11.2008. u 11:25 - pre 188 meseci
posto nisi izvuko gradove u posebnu tabelu. ja bih to vako:

prilikom ucitavanja, ne bih bindovo combobox, vec bih prosto isao items.add , i dodao kao stringove distinct mesta.

korisnik bi izabrao neki postojeci grad, ili bi upisao rucno nest (ostavljen onaj property da moze da se ukucava rucno u combobox)

prilikom sejviranja, u bazu bih upisao selektovan text...

sustinski, ponasanje kao adresbar u browseru
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
*.adsl-1.sezampro.yu.



+1 Profil

icon Re: Problem oko comboxa02.11.2008. u 13:25 - pre 188 meseci
Oprosti nisam sve baš najajsnije razumeo :( Relativno sam svež u programiranju pa mi onaj deo kada kažeš "ne bih bindovao combox" i nije baš najjasniji. Da li se to odnosi na funkciju public void FillcmbMesto() ili već na nešto drugo? Ako nije problem samo malo detaljniji opis izmena ako može kako bi dokučio šta konkretno treba izmeniti u kodu ili neki kratak primer :)

[Ovu poruku je menjao bigguy dana 03.11.2008. u 10:40 GMT+1]
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
80.93.229.*

ICQ: 20785904


+4 Profil

icon Re: Problem oko comboxa03.11.2008. u 13:17 - pre 188 meseci
da da, ta metoda:
ja bih vako nekako to odradio:

Code:

foreach (DataRow dr in Tvoja_tabela.Rows)
{
  if (dr.RowState!=DataRowState.Deleted && dr["mesto_stanovanja"]!=DbNull.Value && !cmbMesto.Items.Contains((string)dr["mesto_stanovanja"])
    {
       cmbMesto.Items.Add((string)dr["mesto_stanovanja"]);
    }
}


a prilikom upisa u bazu, bih iscitavao cmbMesto.SelectedText
 
Odgovor na temu

bigguy
borisav ignjatov
nista
zrenjanin

Član broj: 87859
Poruke: 267
212.200.179.*



+1 Profil

icon Re: Problem oko comboxa03.11.2008. u 18:11 - pre 188 meseci
Sallle hvala na odgovoru, ali nazalost i dalje u comboxu ne mogu da upisujem mesto stanovanja ukoliko ga nema medju ponudjenim opcijama koje se otvaraju klikom. Probao sam u properties-u comboxa da nadjem onu opciju za rucni upis ali je nisam nasao. Mozesli mi tacno reci koja je to opcija? Funkcija sa izmenama mi sada izgleda ovako:

public void FillcmbMesto()
{
clsProcedures cls = new clsProcedures();
dsOsnovniPodaci ds = new dsOsnovniPodaci();

foreach (DataRow dr in cls.ListGradova(ds).Tables[0].Rows)
{
if (dr.RowState != DataRowState.Deleted && dr["Mesto stanovanja"] != DBNull.Value && !cmbMesto.Items.Contains((string)dr["Mesto stanovanja"]))
{
cmbMesto.Items.Add((string)dr["Mesto stanovanja"]);
}
}
}

Ali novonastali problem sa ovakvom funkcijom je da odabrane vrednosti se ne skladiste u tabeli, jer se u tabeli DataGrid ove vrednosti ne vide dok se sve ostale vrednosti forme vide. Nemam pojma zasto?!
Imasli jos neki predlog?!

[Ovu poruku je menjao bigguy dana 04.11.2008. u 00:58 GMT+1]
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Problem oko comboxa

[ Pregleda: 1542 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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