Inserimento di riga in tabella Access

martedì 03 aprile 2007 - 11.02

grado Profilo | Newbie

Ciao a tutti,
sto imparando ora ad usare vb.net e mi imbatto in un problema forse banale ma di cui non vengo a capo:
Attivo una connessione ad access e creo l'oggetto Command, dopodichè uso questo codice:

testoSQL = "INSERT INTO Zone (Data, Cliente, Zona) VALUES (#03/04/07#, 'Paperino', 21)"
ComandoSQL1.CommandText = testoSQL
ComandoSQL1.ExecuteScalar()

per inserire una riga in tabella.
Mi viene restituito un errore di sintassi nell'istruzione INSERT INTO
ma se la stessa riga la metto in una query di Access, tutto funziona a meraviglia.

Chi può aiutarmi? Grazie

lbenaglia Profilo | Guru

>testoSQL = "INSERT INTO Zone...

Ecco l'errore
Questa sera chiaccherando con Giorgio Rancati, mi ha segnalato il seguente articolo della Knowledge Base che riporta le keywords di Jet:

"List of reserved words in Jet 4.0"
http://support.microsoft.com/kb/248738/en-us

Come puoi leggere Zone è una parola riservata; per ovviare al problema racchiudila tra parentesi quadre:

testoSQL = "INSERT INTO [Zone]...

>ComandoSQL1.ExecuteScalar()
Il metodo ExecuteScalar di un oggetto oledbcommand viene utilizzato per recuperare un singolo valore scalare da una query (ad esempio il risultato di una SELECT COUNT(*) FROM...).
Nel tuo caso devi utilizzare il metodo ExecuteNonQuery che ti permettere di sottomettere comandi SQL che non prevedono la restituzione di result set.
Come valore di ritorno otterrai il numero di righe inserite (1 nel tuo caso).

Trovi i dettagli su MSDN:
http://msdn2.microsoft.com/en-us/library/system.data.oledb.oledbcommand.aspx

Inoltre fai attenzione al formato della data che per evitare problemi di nazionalizzazione deve essere espressa nel formato #MM/DD/YYYY#.

>Chi può aiutarmi? Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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