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

c#,ado.net,access problem

[es] :: .NET :: c#,ado.net,access problem

[ Pregleda: 1561 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

drgajic12
Beograd

Član broj: 51770
Poruke: 165
*.ptt.rs.



+2 Profil

icon c#,ado.net,access problem24.01.2011. u 13:02 - pre 161 meseci
Napravim novi zapis u bazi sa sledecim kodom:
Code:

            DataRow red = dataSet11.Proizvodi.NewRow();
            red["naziv"] = "Neki naziv";
            red["kolicina"] = "5";
            dataSet11.Proizvodi.Rows.Add(red);
            proizvodiAdapter.Update(dataSet11);


E sad,ako pokusam da tako tek napravljen zapis promenim,tj. da promenim vrednost bilo kog polja u njemu,a to polje nije ni primarni kljuc niti je vezano sa bilo cim i pokusam da tu promenu sacuvam sa:

proizvodiAdapter.Update(dataSet11)

prijavljuje mi sledecu gresku i naravno ne promeni vrednost u bazi:

DBConcurrencyException was unhandled
Concurrency violation: the UpdateCommand affected 0 of the expected 1 records

Pretpostavljam da treba da dodam neki kod pre ili posle update-a,da sacuva sve promene ili da osvezi neku komponentu,nesto,da bi drugi update mogao da kasnije odradi svoj posao.
Ukoliko restartujem aplikaciju nakon pravljenja novog reda,onda sve radi kako treba,ali to mi pravi veliki problem,jer ne moze klijent sad da restartuje aplikaciju svaki put kad unese novi zapis.

Sta raditi?



 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: c#,ado.net,access problem24.01.2011. u 13:33 - pre 161 meseci
Shta ti znachi taj deo da sve radi kako treba nakon restartovanja ?
Dodavanje proradi ili.. ? Na osnovu onoga shto sam radio sa access bazom u
C#, adapteru treba da dodelish sql insert naredbu, znachi da napravish
string sa insert naredbom, dodelish ga OleDbCommand objektu, a ovaj
OleDbDataAdapeter.InsertCommand propertiju. Znachi za bilo kakav update,
mora da postoji sql naredba u adapteru i ovo shto si uradio (azuriranje
dataset-a) pa tek onda da pozovesh Update f-ju.

--
Using Opera's revolutionary email client: http://www.opera.com/mail/
 
Odgovor na temu

drgajic12
Beograd

Član broj: 51770
Poruke: 165
95.180.99.*



+2 Profil

icon Re: c#,ado.net,access problem24.01.2011. u 15:16 - pre 161 meseci
Nakon restartovanja aplikacije i taj red koji je bio zadnji ubacen moze da se menja.Adapter valjda sam pravi insert,delete i update naredbe,nikad nisam morao da ih kucam.

DataRow red = dataSet11.Proizvodi.NewRow();
red["naziv"] = "Neki naziv";
red["kolicina"] = "5";
dataSet11.Proizvodi.Rows.Add(red);
proizvodiAdapter.Update(dataSet11);
On na osnovu ovoga sam generise insert naredbu i odradi sve kako treba,sljaka mi posle izmena podataka za sve osim za sveze ubacene od starta aplikacije kada hocu nakon ubacivanja da ih menjam.
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.evj-kabel.net.



+14 Profil

icon Re: c#,ado.net,access problem24.01.2011. u 21:25 - pre 161 meseci
Jel koristis triggere? DBconcurrency greska koju pominjes se pojavljuje kada se podaci u bazi promene "iza ledja" aplikacije, jedan od tipicnih nacina za to su triggeri (mada iskreno ne znam ni da li ih Access ima, bezim od Accessa ko djavo od krsta). A moze da bude jos milion drugih razloga, najcesce pozivanje Update-a nekog drugog adaptera koji je povezan na istu bazu.

U svakom slucaju stavi breakpoint posle tog adapter.Update kada dodajes novi red, kada se breakpoint okine pogledaj vrednost promenjive "red" u debageru a onda idi u bazu i uporedi taj red sa onim sto je zaista napisano.
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

drgajic12
Beograd

Član broj: 51770
Poruke: 165
*.ptt.rs.



+2 Profil

icon Re: c#,ado.net,access problem25.01.2011. u 06:53 - pre 161 meseci
Nasao sam resenje.Kad odradi prvi Update,tj. unese novi zapis u bazu,treba da pozovem odmah posle toga Fill metodu da bi on u dataset ubacio i taj novokreirani red da bi mogao da ga menjam dalje.A nakon restartovanja aplikacije bi mi editovanje tog novog reda proradilo jer mi se pri startu aplikacije poziva Fill metoda,pa on tada pokupi i najnovije redove.
 
Odgovor na temu

[es] :: .NET :: c#,ado.net,access problem

[ Pregleda: 1561 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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