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

[C#] Jel to bug ili ...

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

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon [C#] Jel to bug ili ...02.05.2009. u 15:19 - pre 182 meseci
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.
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
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 182 meseci
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

Član broj: 93194
Poruke: 747
93.86.85.*



+987 Profil

icon Re: [C#] Jel to bug ili ...02.05.2009. u 18:39 - pre 182 meseci
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

 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [C#] Jel to bug ili ...03.05.2009. u 10:43 - pre 182 meseci
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
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

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

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

Postavi temu Odgovori

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