26 messaggi dal 17 giugno 2004
Ho un problema che non riesco a risolvere relativo a DataKeys..
Fino ad oggi tutte le tabelle che ho utilizzato avevano una chiave primaria di un solo campo, e quando dovevo cancellare o modificare un record in un DataGrid utilizzavo i seguenti statements :

Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex).ToString()

per ottnere la chiave, e poi

Dim r As DSAgent.AgentRow
r = DsAgent1.Agent.FindByAgent_CODE(key)

Con cui mi posizionavo sul record da modificare/Cancellare.

Con una tabella con una chiave a due elementi, la variabile key continene solo il valore del primo campo e cosi' il findby non funziona in quanto mi manca il valore del secondo campo. Ho sbagliato qualcosa ? Come posso fare ?

Grazie a chiunque possa aiutarmi.
Max
844 messaggi dal 27 gennaio 2004
potresti mettere nella tabella un campo id autoincrementale che diventa la tua key, lasciando inalterate le 2 chiavi primarie.
ciao
26 messaggi dal 17 giugno 2004
E' quanto ho fatto, ma mi chiedevo se c'era una soluzione piu' diretta, senza implementazione di chiavi...

Grazie.
844 messaggi dal 27 gennaio 2004
infatti non implementi le chiavi mettendo un id autoincrementale.
Puoi anche considerare di fare una vista che ha un campo calcolato che concatena le due chiavi altrimenti ricorri ad un tuo DataGrid che eredita da DataGrid e implementa più DataKeys ma è un po' più complicato

Ciao

Il mio blog
Homepage

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.