ciao,
creare una griglia editabile è abbastanza semplice se ti affidi agli automatismi offerti dalla GridView e dall'AccessDataSource.
Partiamo dall'AccessDataSource, che è il controllo incaricato ad estrarre i dati dal database Access. Le proprietà minime che devi configurare sono DataFile (indica il percorso su disco del tuo db access) e SelectCommand (la query SQL usata per estrarre i dati).
<asp:AccessDataSource id="sorgente" DataFile="~/App_Data/nomedb.mdb" SelectCommand="SELECT id, campo1, campo2 FROM tabella" runat="server"></asp:AccessDataSource>
Lavorare con l'AccessDataSource è molto comodo perché lasci a lui l'onere di creare una connessione al database (e di chiuderla), di creare il comando e recuperare i dati. E' più semplice rispetto all'ASP classico, tu devi soltanto limitarti a configurare il controllo come abbiamo appena visto.
Resta inteso che nel momento in cui l'AccessDataSource non ti aiutasse ad affrontare una situazione più complessa, puoi pur sempre scegliere di usare gli oggetti connection e command che usavi anche nell'asp classico (o meglio, le versioni equivalenti di ADO.NET).
Andando avanti... ora i dati vogliamo visualizzarli in una GridView, ed eccola qui, molto semplice, creerà le colonne per noi grazie al suo attributo AutoGenerateColumns="true".
<asp:GridView ID="griglia" DataSourceID="sorgente" AutoGenerateColumns="true" AutoGenerateEditButton="true" runat="server">
</asp:GridView>
Qui noti alcune cose: l'abbiamo legata all'AccessDataSource indicandone l'id nell'attributo DataSourceID.
Poi, abbiamo anche indicato di voler creare un bottone per la modifica (AutoGenerateEditButton="true"), che verrà stampato in corrispondenza di ogni riga.
Ora manda in esecuzione la pagina. Nella griglia, cliccando uno dei "Modifica" noterai che la riga cambierà e mostrerà delle Textbox affinché tu possa modificare il contenuto di quei campi.
Al posto di "Modifica" saranno apparsi i comandi "Applica" e "Annulla" che ti consentono di persistere o cancellare le modifiche apportate.
Prova a cliccare "Applica" e noterai che si verifica un errore. Questo capita perché l'AccessDataSource non ha informazioni sufficienti per effettuare l'aggiornamento.
Così come era stato indicato un SelectCommand, bisogna anche indicare un UpdateCommand. Ecco l'esempio completo.
<asp:AccessDataSource ID="sorgente" DataFile="~/App_Data/nomedb.mdb"
SelectCommand="SELECT id, campo1, campo2 FROM tabella"
UpdateCommand="UPDATE tabella SET campo1=?, campo2=? WHERE id=?"
runat="server" ></asp:AccessDataSource>
<asp:GridView ID="griglia" DataKeyNames="id" DataSourceID="sorgente" AutoGenerateColumns="true" AutoGenerateEditButton="true" runat="server">
</asp:GridView>
Nota i punti interrogativi nell'UpdateCommand: quelli verranno rimpiazzati automaticamente dai valori che tu hai inserito nelle Textbox.
Nella GridView ho anche dovuto aggiungere l'attributo DataKeyNames="id" per informarla che quello è il campo chiave primaria e che perciò non dovrà essere modificabile.
Ora, quando cliccherai "Applica" per persistere le modifiche, vedrai che effettivamente ciò che avevi digitato nelle Textbox è stato scritto nel database.
I controlli che abbiamo visto, GridView e AccessDataSource, possono essere personalizzati molto più di così. Studia seguendo un libro, vedrai che imparerai velocemente. Tra l'asp classico e asp.net c'è un bel salto da fare. Le pratiche di sviluppo sono molto diverse e se provi ad andare per tentativi potresti impiegare più tempo del necessario (e accumulare una certa dose di frustrazione, io me lo ricordo :).
ciao