Ciao a tutti, provo a postare qui il mio problema perchè suppongo non sia poi così complicato da risolvere.
Scusatemi se sono stato un pò prolisso ma l'ho fatto per essere più chiaro possibile.
Dopo aver acquistato un dominio su aruba (lo so che non è il massimo :P) il mio scopo era realizzare una semplice pagina in asp.net con visual web developer.
Finchè non ho deciso di dare la possibilità all'utente di modificare il contenuto delle proprie pagine.
Per farlo, dopo numerosi tentativi fallimentari :) per evitare di utilizzare un database, ho fatto marcia indietro e ho deciso di utilizzarlo.
Mi sono studiato un pò di ADO.net e ho tentato di lavorare su un database access (visto che è l'opzione base che mette a disposizione aruba).
Ho creato una tabella molto semplice e ho voluto tentare di utilizzare uno dei comodissimi tool che mette a disposizione vwd, ovvero la form view.
Alla creazione di un DataSource mi son trovato di fronte alla scelta: creare un sql data source o un access data source. Per semplicità ho optato per il secondo.
In un attimo ho completato le operazioni.
Al caricamento della pagina viene riempito correttamente il form view, ma a questo punto, quando tento di fare un update o un insert di nuovi dati mi son ritrovato questo errore:
"Operation must use an updateable query." .
Qui è partita l'odissea: ho iniziato col leggere la knowledge di aruba, in cui viene consigliato di utilizzare un database ODBC con dsn-less, e scrive 2 o 3 righe di codice in vb che non mi son risultate molto chiare visto che di solito programmo in c#. Inoltre viene segnalato di utilizzare una connectionString fornita da loro (ma scritta pressocchè male e piena di errori).
(come opzione di default vwd utilizza oledb che è invece sconsigliato su aruba :( )
Dopo numerosi tentativi ho scritto nel codice della mia pagina:
Ciò funziona correttamente e mi stampa per bene tutte le informazioni (anche se con la formView risulta gia bella e formattata).
A questo punto ho seguito le indicazioni dell'msdn per inserire un nuovo campo nel mio db a partire da una connectionString data:
static private void InsertRow(string connectionString)
{
string queryString =
"INSERT INTO AccessTable (pageName, Contents) Values('home', 'prova')";
OdbcCommand command = new OdbcCommand(queryString);
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
command.Connection = connection;
connection.Open();
command.ExecuteNonQuery();
}
}
Ma a questo punto, all'esecuzione del metodo, mi ritrovo lo stesso errore.
E' chiaramente un problema legato all'autorizzazione e/o alla scrittura su db, come ho anche letto su vari forum (in cui suggeriscono di cambiare le autorizzazioni etc all'interno della cartella, cosa che io putroppo non posso fare).
E ho letto anche che forse non è possibile effettuare questo tipo di operazioni su db access tramite web.
Pregherei chi è più esperto se sa dirmi qualche soluzione a questo problema.
Grazie anticipatamente.