Problem sa combo boxom i bazom... HITNO!

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).

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:

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 :hmmmmmm:

MOOOOLIIIIM pomoc, sutra trebam predati program :frowning: Itko? :kmech:

  1. pokusavas spremiti neki foreign key, koji ne postoji kao primary key u vezanoj tablici.
  2. tesko napamet, treba debugirat. citac varijabla je ocito prazna. Provjeri sta je u njoj. Debugiraj! Postavi mis iznad varijable i vidi koju vrijednost ima. Moras tocno znaci koja varijabla ima koju vrijednost u debugingu i sta je tocno doslo iz baze i kada, tako ces jedino pronaci problem.

[quote=“hudo”]1. pokusavas spremiti neki foreign key, koji ne postoji kao primary key u vezanoj tablici.
2. tesko napamet, treba debugirat. citac varijabla je ocito prazna. Provjeri sta je u njoj. Debugiraj! Postavi mis iznad varijable i vidi koju vrijednost ima. Moras tocno znaci koja varijabla ima koju vrijednost u debugingu i sta je tocno doslo iz baze i kada, tako ces jedino pronaci problem.[/quote]

Ma combo box vuce primarne kljuceve iz baze, tako da je nemoguce da ne postoji u bazi, ali uglavnom, rjeseno je, bio je problem sa combo boxom, pogresan selected value…

hvala u svakom slucaju :slight_smile:


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja