C# - Problemi i rješenja izdvojena tema

poruka: 2.151
|
čitano: 704.841
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

Ne trebas objasnjavati relacije.

Sto se ID-a tice, moras ga postaviti da se svaki put, kada se u bazu upise novi zapis, inkrementira za jedan ili koliko ti hoces. Odakle ucis baze?, malo lupas, to bi se moglo odraditi i bez relacija, relacije su tu iz nekih drugih razloga.

Moguce da je do identity-a, pogledaj identity specification za ta dva primarna kljuca.

Zar ID nije nesto sto bi se smao trebalo generirati? Dakle u bazu se upise prvi korisnik i automatski dobije ID = 1, svaki iduci put podatak koji se upisuje ima ID za 1 veci, mislim to je sigurno tocno jer evo gledam samu bazu i svi ID-evi su korektno postavljeni:

 

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put pet 17.8.2012 3:04 (athlon64).
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

 

 Onda ti je sam SSMS/VS postavio identity. Samo da znas to ne mora nuzno biti tako.

15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

 

 Onda ti je sam SSMS/VS postavio identity. Samo da znas to ne mora nuzno biti tako.

ok a jel ti pada na pamet sta bi se pogli napravit po pitanju ovog errora?

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put pet 17.8.2012 12:30 (athlon64).
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Aj postavi debugger na Id korisnika.

15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

Aj postavi debugger na Id korisnika.

to sve prolazi, pokaza sam ti gori na kojoj liniji zapne.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Znaš što je debugger? Treba mi da vidim koju vrijednost ima ID. A to što na toj liniji daje grešku ne znači ništa drugo osim da je greška u komuniciranju sa bazom. A piše ti zašto, pročitaj error, nešto nije uredu sa primarnim ključem korisnika. Kontaš?

16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Fali ti ovo: MissingSchemaAction.AddWithKey. Ako je identity postavljen na neki int column sa onim auto incrementom, treba ti AddWithKey i kod inserta/update ne šalješ id. Sam ga dodaje.

 

[edit] - jedan primjer

 

 

                conn.Open();

                kupci_table = kupci_ds.Tables["kupci_t"];
                SqlDataAdapter adapter_kupci = CreateAdapter_kupci(conn);
                kupci_grid.BindingContext[kupci_ds].EndCurrentEdit();

                // zapisivanje u bazu

               adapter_kupci.MissingSchemaAction = MissingSchemaAction.AddWithKey;

                try
                {
                    adapter_kupci.Update(kupci_table);
                }
                catch (SqlException update_error)
                {
                    MessageBox.Show(update_error.ToString(), "Greška u zapisivanju u bazu!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

 

Uvučeno je jer je dio većeg try...catch bloka.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put pet 17.8.2012 14:32 (Sum_of_all_fears).
15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

Znaš što je debugger? Treba mi da vidim koju vrijednost ima ID. A to što na toj liniji daje grešku ne znači ništa drugo osim da je greška u komuniciranju sa bazom. A piše ti zašto, pročitaj error, nešto nije uredu sa primarnim ključem korisnika. Kontaš?

da ali meni se ID korisnika uopće ne spominje nigdje u kodu tako da nemam na šta stavit brakepoint, rečeno mi je da ID ne smijem dirat jer ću zasrat nešto tj da to nije nešto šta ja postavljam nego baza automatski a onda ga ja mogu samo koristit za traženje necega etc...

Sum_of_all_fears kaže...

Fali ti ovo: MissingSchemaAction.AddWithKey. Ako je identity postavljen na neki int column sa onim auto incrementom, treba ti AddWithKey i kod inserta/update ne šalješ id. Sam ga dodaje.

 

[edit] - jedan primjer

 

 

                conn.Open();

                kupci_table = kupci_ds.Tables["kupci_t"];
                SqlDataAdapter adapter_kupci = CreateAdapter_kupci(conn);
                kupci_grid.BindingContext[kupci_ds].EndCurrentEdit();

                // zapisivanje u bazu

               adapter_kupci.MissingSchemaAction = MissingSchemaAction.AddWithKey;

                try
                {
                    adapter_kupci.Update(kupci_table);
                }
                catch (SqlException update_error)
                {
                    MessageBox.Show(update_error.ToString(), "Greška u zapisivanju u bazu!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

 

Uvučeno je jer je dio većeg try...catch bloka.

u redu ali kako bi ovo trebao ubacit u kod? samo da dodam linju:  "poruke.MissingSchemaAction = MissingSchemaAction.AddWithKey;" i to isto za korisnika??? 

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Poruka je uređivana zadnji put pet 17.8.2012 14:52 (athlon64).
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja
athlon64 kaže...
u redu ali kako bi ovo trebao ubacit u kod? samo da dodam linju:  "poruke.MissingSchemaAction = MissingSchemaAction.AddWithKey;" i to isto za korisnika??? 

Da, to ide na DataAdapter (jer on komunicira sa bazom).

http://nighthawk-software.blogspot.com/
15 godina
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...
athlon64 kaže...
u redu ali kako bi ovo trebao ubacit u kod? samo da dodam linju:  "poruke.MissingSchemaAction = MissingSchemaAction.AddWithKey;" i to isto za korisnika??? 

Da, to ide na DataAdapter (jer on komunicira sa bazom).

evo ja sam to ovako dodao ali problem je ostao

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Ajd opali breakpoint na context.AddToPoruke i da vidimo taj ID i ostalo što ide u SQL. Tu nešto ne štima.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put pet 17.8.2012 15:02 (Sum_of_all_fears).
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Ko zna da li mu je sve u redu sa Model-om, jer ovo je MVC aplikacija...

15 godina
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

Ajd opali breakpoint na context.AddToPoruke i da vidimo taj ID i ostalo što ide u SQL. Tu nešto ne štima.

 

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Pa jel vidiš? Id ti je nula, a u bazi takav ne postoji i zbog relacije ne može sačuvati podatak. Pogledaj model, mora da si tamo nešto zeznuo.

15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

Pa jel vidiš? Id ti je nula, a u bazi takav ne postoji i zbog relacije ne može sačuvati podatak. Pogledaj model, mora da si tamo nešto zeznuo.

a evo sad gledam i nije ni meni jasno zasto je id 0 ako su svi korisnici koji su spremljeni  u bazi spremljeni s odgovarajucim ID-om, sad cu malo prokopat

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
15 godina
offline
C# - Problemi i rješenja

mislim da sam skužia u cemu je problem, objasnit cu kad ga rijesim

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
C# - Problemi i rješenja

ID ne bi niti trebao biti vidljiv na klijentskoj strani pošto ga sama baza određuje nakon upisa novog zapisa.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Moj PC  
1 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
TracerCPP kaže...

ID ne bi niti trebao biti vidljiv na klijentskoj strani pošto ga sama baza određuje nakon upisa novog zapisa.

Ne kontam što si htio reći? Njemu neće da ubaci zapis u tabelu poruke jer je ID korisnika 0, a korisnik sa ID-om 0 ne postoji u tabeli korisnika. Naravno da neće biti vidljiv, ali mu treba u logici programa.

15 godina
offline
C# - Problemi i rješenja

recite mi samo da li ja ikako mogu iz query-a u stvari izvuć neki podatak tj ako imam 

 

var IDkoriskika =

           from korisnik1 in context.Korisnici

           where korisnik1.Ime == imekorisnika

           select korisnik1.Id;

 

Da li ja ID tog korisnika mogu ikako dobit u obliku obićne "int" varijablje tako da je mogu koristit?

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Možeš napisati metodu u EF-u:

/* vraća korisnika, možeš napisati provjeru, ako metoda vrati null ne postoji */  
    public Korisnici postoji(string name)
    {
        return context.Korisnici.Where(x => x.Ime == name).SingleOrDefault();
    }
/* vraća id od imena korisnika */
    public int id_korisnika(string ime)
    {
        Korisnici korisnik = postoji(ime);
        return korisnik.Id;
    }

Poruka je uređivana zadnji put pet 17.8.2012 18:58 (royalhero).
15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

Možeš napisati metodu u EF-u:

/* vreća korisnika, možeš napisati provjeru, ako metoda vrati null ne postoji */  
    public Korisnici postoji(string name)
    {
        return context.Korisnici.Where(x => x.Ime == name).SingleOrDefault();
    }
/* vraća id od imena korisnika */
    public int id_korisnika(string ime)
    {
        Korisnici korisnik = postoji(ime);
        return korisnik.Id;
    }

e super, sad ću probat, moram se naućit koristit lambde xd, ćujem da su puno naprednije od klasićnih query-a

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
15 godina
offline
C# - Problemi i rješenja

Zahvaljujem na pomoći,uspio sam završit aplikaciju xd, sta se tice problema onaj IDkorisnika je bio krivo postavljen, ugl nešto jako banalno i glupo,mogao sam i sam vidit da sam se malo igrao debuggerom, a evo dole i rezultat radeće aplikacije :)

 

Samo da pitam, kojom komandom mogu pocistit sve podatke iz baze??

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

DELETE * FROM korisnici

Poruka je uređivana zadnji put pet 17.8.2012 19:41 (royalhero).
15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

DELETE * FROM korisnici

i don"t think so...

 

 

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

DELETE FROM <tabela>

Moje isprike podkrala se zvjezdica kao kod SELECT-a.

 

Možeš i TRUNCATE TABLE<ime>, samo ako imaš relacije neće ići.

15 godina
offline
C# - Problemi i rješenja

nein :)

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

HAHAHA Toliko ucenja MS tehnologija i jos nisi naucio da kada pravimo neki place holder za ime varijable/tabele pisemo u <>... Oprastam ti jer su sitni sati. :-)

Poruka je uređivana zadnji put sub 18.8.2012 4:02 (royalhero).
15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

HAHAHA Toliko ucenja MS tehnologija i jos nisi naucio da kada pravimo neki place holder za ime varijable/tabele pisemo u <>... Oprastam ti jer su sitni sati. :-)

pa stavio sam <> ??

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Pa zbog toga i je!

DELETE FROM korisnici

15 godina
offline
Re: C# - Problemi i rješenja
royalhero kaže...

Pa zbog toga i je!

DELETE FROM korisnici

pa ti si mi rekao da stavim <> ?  Uostalom kad stavim DELETE FROM korisnici kaze mi "invalid name korisnici" iako mi se tabela tocno tako zove.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Nova poruka
E-mail:
Lozinka:
 
vrh stranice