23 messaggi dal 07 agosto 2007
La modifica di una riga di un gridview ha successo solo per i campi che non sono chiave primaria; se mi occorresse di modificare tutta la riga, quindi anche i campi chiave, come posso fare?
203 messaggi dal 29 giugno 2007
non saprei proprio come si potrebbe fare, ma mi pongo (e ti pongo) questo quesito, basato più che altro su riminiscenze universitarie:

ma se devo andare in update di una chiave primaria, non è che magari devo rivedere come è strutturato lo schema del database che utilizzo?

chiedo lumi, so come comportarmi visto che sto iniziando un nuovo progetto sul lavoro e probabilmente avrò di questi problemi!
stai usando una BoundField per visualizzare il campo chiave?

è sufficente utilizzate una TemplateFileld, visualizzi il campo in una TextBox e il gioco è più o meno fatto.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
23 messaggi dal 07 agosto 2007
a monte della modifica del campo chiave in questione ho messo un ciclo che controlla la validità del valore immesso, magari confrontando l'esistenza del valore valore immesso con lo stesso record di un altro database; è ovvio che il valore inserito dovra avere certi requisiti, che nè sò, il codice_prodotto di una tabella Articoli deve poter essere un codice prodotto vero di un prodotto e non un numero a caso.
Effettivamente anche le mie reminiscenze universitarie mi avevano lasciato interdetto di fronte ad una richiesta (dello pseudo capo, che caccia l'euri) del genere...
una chiave primaria non è certo scolpita nella roccia, e può naturalmente essere modificata, il tutto è però è subordinata al perchè.

comunque non è certo un problema del GridView lui si limita a mostrare i dati cosa farci dobbiamo deciderlo noi.

se usi una TemplateField puoi fare più o meno ciò che vuoi

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
13 messaggi dal 24 marzo 2006
Ciao,
non so se è l'informazione che ti interessa ma nel caso in cui tu avessi la GridView collegata ad un SqlDataSource per aggiornare la chiave occorre:
- impostare la proprietà GridView.DataKeys (es. MyKey)
- impostare la proprietà SqlDataSource.OldValuesParameterFormatString ad un valore del tipo "Original_{0}"
(di modo da poter avere per ogni campo chiave un parametro per il valore originale e quello modificato, se lasci {0} è disponibile il solo valore modificato rendendo in pratica impossibile fare l'update)
- modificare la where dell'Update command utilizzando il parametro con il prefisso "Original_" (es. @Original_MyKey)

In pratica la query di update sarà una query del tipo
UPDATE MyTable SET MyKey=@MyKey, MyValue=@MyValue WHERE MyKey=@Original_MyKey


Saluti
Roberto
23 messaggi dal 07 agosto 2007
ho converito i campi chiave in TemplateField ma non ho risolto.
se il problema sta nella definizione del database di Access?
ti spiego cosa ho fatto: ho creato una tabella con Access che contiene 5 campi, 3 sono chiave e 2 no. In visual studio ho stabilito la connessione con l'AccessDataSource, usando un gridview come visualizzatore del database; a quest'ultimo ho aggiunto una CommandField per le operazioni di modifica, selezione e eliminazione
la modifica del GridView è il primo passo, per darti un aiuto concreto posta l'AccessDataSource

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.