Comando CancelCurrentEdit

martedì 17 maggio 2005 - 15.29

Shadow Profilo | Junior Member

Buonasera a tutti,
ed innanzitutto grazie alle risposte ai miei quesiti inviate oggi su altri forum. Ho un quesito molto urgente da porvi (consideratelo un prosieguo del mio ultimo messaggio su questo forum).

Il datagrid della mia win application visualizza una serie di record presi da un dataview di una tabella di un db access; sul relativo form c'è un pulsante "nuovo inserimento" che: aggiunge un record al dataview ed apre un piccolo pannello che mostra solo quel nuovo record stavolta non come datagrid ma come campi singoli. Naturalmente su questo nuovo pannello sono presenti i pulsanti "conferma nuovo inserimento" ed "annulla nuovo inserimento" con associate le instruzioni cancelcurrentedit per annullare l'ultimo inserimento e naturalmente pannellonew.visible=false. Stranamente proprio quest'ultimo mi dà il problema che voglio sottoporvi.

Il problema riguarda il campo ID, che è un contatore. Infatti il nuovo inserimento è si annullato (me ne accorgo perché la nuova riga poi non compare) ma se provo a cliccare su nuovo inserimento, poi su annulla nuovo inserimento e poi nuovamente su nuovo inserimento vedo che il campo id (contatore) parte dalla riga successiva a quella la cui creazione avevo annullato, e la cosa strana è che però chiudendo e riaprendo il programma il contatore torna a partire dall'ultima riga effettivamente presente. Quasi come se cancelcurrentedit non avesse effetto (ma sempre se non chiudo e riapro il programma!) sul campo id. Ho provato di tutto, vi prego di dirmi come risolvere il problema con qualche riga perché di tutti i miei quesiti questo è il più importante!! Sono certo si tratta di una banalità, forse non ho usato il cancelcurrentedit in modo appropriato o devo aggiugere qualcosa....

Grazie a tutti e scusate se mi sono dilugato!
Shadow

Cteniza Profilo | Guru

Non mi sembra di avere letto come ottieni l'id incrementato.
Mon credo sia nell'evento updated del datareader perchè a quel punto è troppo tardi.
Presumo pertanto che tu abbia impostato il contatore progressivo sul dataset.
CancelCurrentEdit lo devi applicare all'oggetto su cui hai fatto "newrow"
Se non "ritorna indietro" non credo (meglio non conosco) soluzioni, tra l'altro personalmente non farei mai assegnare un id automaticamente dal dataset in nessun caso a meno che non fosse un guid
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5