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

C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a

[es] :: .NET :: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a

[ Pregleda: 2335 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ahmiconie
Andy Luis
NY

Član broj: 117482
Poruke: 3
109.175.33.*



Profil

icon C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a12.04.2010. u 20:21 - pre 171 meseci
Imam 2 tabele
Tabela : Artikli
Kolone: ID_Artikla, naziv_Artikla, ID_PDV
Tabela: Porez
Kolone: ID_PDV, PDV
Rel.: Primarni ključ Porez.ID_PDV
Foreign: Artikli.ID_PDV

Na formi su 1 textBox za unos naziva artikla, i 1 ComboBox gde ce se izabrati iznos poreza.
Meni treba da na osnovu izabranog poreza, iz tabele Porezi, se upise ID_PDV-a u tabelu Artikli u kolonu istog naziva.

Ovo je kod:

Code:
private void button1_Click(object sender, EventArgs e)
        {
         SqlConnection conn = new SqlConnection();
         conn.ConnectionString ="Data Source=SERVER\\MOJSERVER;Initial Catalog=posbaza;Integrated Security=True";
         SqlCommand cmd = new SqlCommand();
         cmd.CommandText = "INSERT INTO Artikli (Naziv_Artikla) VALUES (@Naziv_Artikla)SELECT SCOPE_IDENTITY()";
         cmd.CommandText = "INSERT INTO Artikli (ID_PDV) VALUES (@ID_PDV) SELECT ID_PDV FROM Porez WHERE PDV LIKE + '"+pDVTextBox.Text+"' ";
         cmd.Parameters.AddWithValue("@Naziv_Artikla", textBox1.Text);
         
         conn.Open();
         cmd.Connection = conn;
         cmd.ExecuteNonQuery();
         conn.Close();
        }

Kao greška mi se javlja: Must declare the scalar variable \"@ID_PDV\"."
Znam da se u obe tabele nalazi ista kolona, pokusao sam i sa dodavanjem naziva tabele ispred naziva kolone (npr. Porez.ID_PDV), al i dalje nije prepoznavao tabelu i kolonu.
Problem sam uprostio sa minimalnim br. tabela i kolona kako bi bilo lakse svatiti o cemu se radi.
Molim ponoć!
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.247.*



+18 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a12.04.2010. u 21:09 - pre 171 meseci
Zar ne bi trebao da dodaš:

cmd.Parameters.Add("@ID_PDV");

Mada proveri prvo ovo:

cmd.CommandText = "INSERT INTO Artikli (ID_PDV) VALUES (@ID_PDV) SELECT ID_PDV FROM Porez WHERE PDV LIKE + '"+pDVTextBox.Text+"' ";

Mislim da treba ovako nekako:

cmd.CommandText = "INSERT INTO Artikli (ID_PDV) SELECT ID_PDV FROM Porez WHERE PDV LIKE '"+pDVTextBox.Text+"' ";



[Ovu poruku je menjao mish_ns dana 12.04.2010. u 22:34 GMT+1]
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a12.04.2010. u 22:55 - pre 171 meseci
Ovo bi trebalo da pomogne:
Code:

private void button1_Click(object sender, EventArgs e)
{
    // validacija
    if (textBox1.Text.Length == 0)
    {
        MessageBox.Show("Morate uneti naziv.");
        return;
    }

    if (comboBox1.SelectedValue == null)
    {
        MessageBox.Show("Morate izabrati PDV");
        return;
    }

    DodajArtikal(textBox1.Text, Convert.ToInt32(comboBox1.SelectedValue));
}

private void DodajArtikal(string nazivArtikla, int idPdv)
{
    string connectionString = "Data Source=SERVER\\MOJSERVER;Initial Catalog=posbaza;Integrated Security=True";
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        using (SqlCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = "INSERT INTO Artikli (naziv_Artikla, ID_PDV) VALUES (@naziv_Artikla, @ID_PDV)";
            cmd.Parameters.AddWithValue("@naziv_Artikla", nazivArtikla);
            cmd.Parameters.AddWithValue("@ID_PDV", idPdv);

            conn.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

Probaj malo da izdebaguješ aplikaciju da vidiš šta se dešava.
Ako 2 puta settuješ property cmd.CommandText to ne znači da će se pozivati 2 komande, već samo jedna i to ona čiji si text poslednji settovao.
 
Odgovor na temu

ahmiconie
Andy Luis
NY

Član broj: 117482
Poruke: 3
109.175.49.*



Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 10:35 - pre 171 meseci
U samom pocetku sam trebao malo vise pojasniti, a to je da na osnovu izbora poreza u ComboBoxu, iz tabele Porez se upise ID_PDV u tabelu Artikli pod istim nazivom kolone.
Znaci, iz 1 tabele se upisuje vrednost u drugu, a uslov je izabrana vrednost u ComboBox-u.
Da ne bi bilo zabune evo primera:
tabela Porez:

ID_PDV PDV
1 10
2 20
Ako u ComboBox-u se izabere vrednost "20", tada bi trebalo da se iz tabele Porez upise vrednost ID_PDV-a "2" u tabelu Artikli, kolona ID_PDV.

 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.adacta.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 11:16 - pre 171 meseci
Ma shvatio sam šta hoćeš, samo ne znam šta te još buni.
Combobox je potrebno da binduješ na tabelu Porez i settuješ sledeće vrednosti (bilo u kodu, bilo u designeru)
Code:

comboBox1.DisplayMember = "PDV";
comboBox1.ValueMember = "ID_PDV";

I onda iskoristiš kod koji sam ti poslao u prethodnoj poruci.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.255.*



+18 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 11:39 - pre 171 meseci
Evo, meni ovo sasvim lepo radi:
Code:

private void btnUpisi_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["sqlConnectionString"]);
            SqlCommand cmd = new SqlCommand();
            using (conn)
            {
                conn.Open();
                string cmdString = "INSERT INTO Artikli (ID_PDV) SELECT ID_PDV FROM Porez WHERE PDV LIKE'"+comboBox1.Text+"'";
                cmd.Connection = conn;
                cmd.CommandText = cmdString;
                cmd.ExecuteNonQuery();
                conn.Close();
            }
        }

Prethodno sam napunio comboBox vrednostima iz Porez tabele kolona PDV.
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.adacta.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 11:55 - pre 171 meseci
@mish_ns

To ne bi trebao da radiš tako zbog:

1. Imaš sve potrebne vrednosti, nema potrebe ponovo da radiš select. Zamisli da radiš sa jako velikim tabelama, koliko bi ti trajala insert naredba? Onoliko koliko je potrebno da se izvrši select + normalan insert, a to može biti jako skupa operacija.
2. Polje PDV iz tabele Porez nije jedinstveni ključ. Ukoliko imaš 5 redova koji imaju istu vrednost za polje PDV, tvoja komanda će upisati 5 redova u tabelu Artikli umesto samo jedan jedini.
3. Ovo je jednostavan slučaj kada imaš samo 2 tabele. Kako bi trebao da izgleda upit da radiš sa 10 tabela koje su u nekoj relaciji?
4. Ako ista forma treba da služi i za izmenu Artikala, kako će u tom slučaju izgledati update komanda?

itd.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.255.*



+18 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 12:01 - pre 171 meseci
Jeste u pravu si, ali pretpostavljam da je neki "laksi" projekat u pitanju,pa sam dao brzinsko resenje. :)

Inace sad sam probao i tvoj kod...Radi dobro :)
 
Odgovor na temu

ahmiconie
Andy Luis
NY

Član broj: 117482
Poruke: 3
109.175.49.*



Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 12:16 - pre 171 meseci
Zahvaljujem se na ukazanoj pomoći, slobodno mogu reci da je problem SOLVED.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.255.*



+18 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 12:25 - pre 171 meseci
E ja bih pitao jos Dejana, da ne otvaram novu temu sledece:

DisplayMember je osobina koja se prikazuje u zadatoj kontroli (ovde je to comboBox)
ValueMember je osobina koja predstavlja aktuelnu vrednost elemenata u kontroli ???

Kako sad ako treba da se prebace 2 vrednosti iz jedne u drugu tabelu? (npr. i ID_PDV i PDV iz Poreza u Artikle)
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.adacta.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 13:57 - pre 171 meseci
Nikada nećeš prenositi obe vrednosti, ali...

Ja bih napravio listu objekata PDV i nju bindovao na combobox.

Definišemo klasu:
Code:

class Pdv
{
    public int Id { get; set; }
    public string Vrednost { get; set; }
}

Dohvatanje vrednosti i bindovanje:
Code:
// Ovo treba da se napuni iz baze
List<Pdv> list = new List<Pdv>();
list.Add(new Pdv() { Id = 1, Vrednost = "8%" });
list.Add(new Pdv() { Id = 2, Vrednost = "18%" });

comboBox1.DataSource = list;
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "Vrednost";

Uzimanje selektovane vrednosti:
Code:
private void button1_Click(object sender, EventArgs e)
{
    Pdv pdv = (Pdv)comboBox1.SelectedItem;
    MessageBox.Show(string.Format("Id: {0}, Vrednost: {1}", pdv.Id, pdv.Vrednost));
}

 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
109.106.255.*



+18 Profil

icon Re: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a13.04.2010. u 18:07 - pre 171 meseci
Aha...ok jasno mi je.
Sjajno. Hvala!!!
 
Odgovor na temu

[es] :: .NET :: C# ubacivanje podataka iz jedne tabele u drugu, a uslov da bude izabrana vrednost iz ComboBox-a

[ Pregleda: 2335 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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