Gå til innhold

db.SubmitChanges(ConflictMode.ContinueOnConflict) feiler (nå er det mer en tre ord i emnetittelen)


Anbefalte innlegg

Heisan folkens

 

Jeg lager en planlegger der brukeren kan flytte elementer ved å endre på tidspunkter. For å unngå at to elementer kan være på samme sted og tid så har jeg i databasen satt en unik nøkkel på sted og tid.

 

I koden gjør jeg slik:

try
{
 DataHandling.db.SubmitChanges(ConflictMode.ContinueOnConflict)
}
catch (ChangeConflictException ce)
{
 foreach (ObjectChangeConflict occ in dataHandling.db.ChangeConflicts)
 {
Fellestrening feil = (Fellestrening)occ.Objext;
Message......... en melding til bruker
occ.Resolve(RefreshMode.KeepCurrentValues);
 }
 DataHandling.db.SubmitChanges();
}

 

Alikevel så får jeg en exception inne i TRY området som sier:

SqlException Was Unhandled
Cannot Insert duplicate key row in object 'dbo.Fellestrening' with unique index
'DuplicateCheck'.
The statement has terminated."

Noen ide om hvorfor denne kommer frem i det hele tatt? trodde en TRY/CATCH skulle for det første, forhidre at meldingen vises til bruker og for det andre, la meg ordne opp i feilen "by code"

 

Takker for alle tips...

Lenke til kommentar
Videoannonse
Annonse

Hvis du catcher Exception som alle andre Exceptions kaster så vil du havne i catchen ja, men da blir det vanskeligere å handle på bakgrunn av hva slags exception du har fått... Så hvis du ønsker en god flyt i programmet ditt så lønner det seg å catche spesifikke exceptions. Med det sagt så pleier jeg aldri gjøre det selv, og best practice er jo uansett å jobbe preventivt mot at exceptions oppstår, men så er jeg lat da =)

 

Lykke til!

Lenke til kommentar

ja, men i dette tilfellet er jeg antagligvis avhengig av å bruke exceptions. Det er vel ingen andre måter å catche duplikater på tror jeg. Det som forundrer meg litt er jo at den exception jeg sjekker på er jo nettop den exception som er dokumentert å bruke. Pussig. Får forske litt på det...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...