[ Lanaaa @ 06.07.2010. 13:51 ] @
E ovako: Za fax trebam napraviti neku aplikaciju vezanu za racunovodstvo u VS. U VS-u sam napravila i bazu sa 3 tabele: Konto, Dokument, Transakcija; Transakcija je povezana na druge preko vanjskih kljuceva. Na formu za unos nove transakcije postavljen combo box koji je preko 'use data bound' povezan na bazu: Datasource - kontoBindingSource Displaymember - Sifra Valuemember - Sifra Selectedvalue - transakcijaBindingSource-SKonta Sifra je u Kontu primarni kljuc, a Skonta vanjski u Transakciji Isto je uradjeno i sa drugim combo boxom koji prikazuje nazive dokumenta, a trebao bi pohranjivati sifre dokumenata u transakciju u SDokumenta (vanjski kljuc). kod: Code: private void button1_Click(object sender, EventArgs e) {string tekstVeze = "Data Source=.\\SQLEXPRESS; AttachDbFilename = C:\\ProjektBazaNova.mdf; Integrated Security = true; Connect Timeout = 30; User Instance = True"; SqlConnection veza = new SqlConnection(tekstVeze); veza.Open(); string skonta = comboBox1.ValueMember; decimal dug = Convert.ToDecimal(textBox2.Text); decimal pot = Convert.ToDecimal(textBox3.Text); int sdok = Convert.ToInt32(comboBox2.ValueMember); string dat = dateTimePicker1.Text; string naredba = "INSERT INTO Transakcija (Datum, SKonta, Duguje, Potrazuje, SDokumenta) VALUES ('"+dat+"','"+skonta+"','"+dug+"','"+pot+"','"+sdok+"')"; SqlCommand com = new SqlCommand(naredba, veza); com.ExecuteNonQuery(); Kada pokrenem aplikaciju i pokusam spremiti podatke u batu izbacuje error: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Transakcija_Konto". The conflict occurred in database "C:\PROJEKTBAZANOVA.MDF", table "dbo.Konto", column 'Sifra'. The statement has been terminated. Dalje, klikom na taj isti button bi se trebali azurirati podaci u tablici Konto, sto sam htjela uraditi tako da prvo povucem stanje na duguje i potrazuje na kontu koji ima istu sifru kao u combo boxu, zbrojim je sa 'dug' odnosno 'pot' i onda update uradim. Ali opet greska: Code: string naredba2 = "SELECT Duguje FROM Konto WHERE Sifra = '" + skonta + "'"; SqlCommand com2 = new SqlCommand(naredba2, veza); SqlDataReader citac = com2.ExecuteReader(); citac.Read(); decimal duguje = citac.GetDecimal(1); decimal dd = dug + duguje; string naredba3 = "SELECT Potrazuje FROM Konto WHERE Sifra = '" + skonta + "'"; SqlCommand com3 = new SqlCommand(naredba3, veza); SqlDataReader citac2 = com3.ExecuteReader(); citac2.Read(); decimal potrazuje = citac2.GetDecimal(1); decimal pp = potrazuje + pot; string naredba4 = "UPDATE Konto SET Duguje='"+duguje+"', Potrazuje='"+potrazuje+"' WHERE Sifra='"+skonta+"'"; SqlCommand com4 = new SqlCommand(naredba4, veza); com4.ExecuteNonQuery(); Invalid attempt to read when no data is present. i oznacen ovaj red -> decimal duguje = citac.GetDecimal(1); Koliko se meni cini da je problem sa combo boxom, ali pojma nemam sta kako :s MOOOOLIIIIM pomoc, sutra trebam predati program :( |