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

[C#] Jel to bug ili ...

[es] :: .NET :: .NET Desktop razvoj :: [C#] Jel to bug ili ...

[ Pregleda: 718 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

AMD guy
Miroslav Bučko
.NET developer

Član broj: 128930
Poruke: 798
93.86.4.*

Sajt: www.its.edu.rs


Profil

icon [C#] Jel to bug ili ...02.05.2009. u 15:19 - pre 1483 dana i 3h

Zasto mi ovaj kod daje dupli upis u bazu?
Code:
private void btnSnimi_Click(object sender, EventArgs e)
        {
            NapraviNovi();
            Close();
        }

        public void NapraviNovi()
        {    
            //Kreiranje SqlConnection objekta za povezivanje sa bazom
            SqlConnection conn = new SqlConnection(Properties.Settings.Default.RentCarConnStr);
            
            //Uspostavljanje veze sa bazom
            conn.Open();

            //Kreiranje insert stringa za upis novog vozila u tabelu
            string InserString = "INSERT INTO Vozilo(Marka,Boja,Godiste,Registracija) VALUES (@Marka, @Boja, @Godiste, @Registracija)";

            //Kreiranje SqlCommand objekta za cuvanje izraza SELECT
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = InserString;

            
            cmd.Parameters.Add("@Marka", SqlDbType.NVarChar, 20);
            cmd.Parameters.Add("@Boja", SqlDbType.NVarChar, 20);
            cmd.Parameters.Add("@Godiste", SqlDbType.Int, 4);
            cmd.Parameters.Add("@Registracija", SqlDbType.NVarChar, 20);

            cmd.Parameters["@Marka"].Value = txtMarka.Text;
            cmd.Parameters["@Boja"].Value = cmbBoja.Text;
            cmd.Parameters["@Godiste"].Value = numericUpDownGod.Value.ToString();
            cmd.Parameters["@Registracija"].Value = txtRegBroj.Text;

            //Kreiranje SqlAdapter objekta
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;

            //kreiranje dataset objekta
            DataSet ds = new DataSet();

            //Pozivanje metode Fill() objekta SqlDataAdaptera za preuzimanje redova iz tabele
            string DataTableName = "Vozilo";
            da.Fill(ds, DataTableName);

            //Uzimanje objekata Datatable iz objekta DataSet
            DataTable myDataTable = ds.Tables[DataTableName];

            cmd.ExecuteNonQuery();
            conn.Close();
            MessageBox.Show("Novo vozilo uspesno kreirano");
            Close();

        }



ID_Vozila je Identitiy increment i primary key. Koristim VS 2008 i SQL Express 2008.
 
Odgovor na temu

markomys

Član broj: 182048
Poruke: 4
93.86.101.*



Profil

icon Re: [C#] Jel to bug ili ...02.05.2009. u 16:40 - pre 1483 dana i 2h
Napravi novu SqlCommand sa select upitom za fill i nju stavi da ti bude adapterova SelectCommand.
I prvo pozovi ExecuteNonQuery pa onda fill da ti pokupi promene.
 
Odgovor na temu

Igor Gajic
Novi Sad

Član broj: 93194
Poruke: 724
93.86.85.*

Sajt: www.flickr.com/photos/igo..


Profil

icon Re: [C#] Jel to bug ili ...02.05.2009. u 18:39 - pre 1483 dana
Laptopovi

Nije bug u C#

Code:


...

da.Fill(ds, DataTableName);  // izvrsava 1. INSERT (tako si podesio, umesto SELECT komande prosledio si INSERT)

...

cmd.ExecuteNonQuery(); //izvrsava 2. INSERT


When a government is dependent upon bankers for money, they and not the leaders of the government control the situation, since the hand that gives is above the hand that takes …

Stay smart, stay out of debt, and risk being boring

Pruske vrline
 
Odgovor na temu

AMD guy
Miroslav Bučko
.NET developer

Član broj: 128930
Poruke: 798
93.86.4.*

Sajt: www.its.edu.rs


Profil

icon Re: [C#] Jel to bug ili ...03.05.2009. u 10:43 - pre 1482 dana i 8h
Da sada vidim dva puta sa izvrsio INSERT, izbacio sam cmd.ExecuteNonQuery(); i sada upisuje samo jednom. Stvarno glupa greska
Svaki put nesto novo naucim hehe
Pozdrav
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: [C#] Jel to bug ili ...

[ Pregleda: 718 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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