Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Non riesco ad inserire una riga in una tabella di un database ACCESS (...
venerdì 02 luglio 2004 - 16.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gigimix
Profilo
| Newbie
36
messaggi | Data Invio:
ven 2 lug 2004 - 16:23
Lerrore che mi viene restituito è: Errore di sintassi nellistruzione INSERT INTO.
Ho provato sia con il CommandBuilder che con unistruzione SQL ad hoc, ma lerrore è sempre lo stesso.
Ecco cosa ho fatto:
Ho la necessità di leggere 2 tabelle da un DB Access e lo faccio con: "SELECT * FROM Eventi order by DataInizio DESC" e con "SELECT * FROM Eventi_ECM order by DataInizio DESC".
I risultati li metto in omonime tabelle di un DataSet: adapter.fill(dataset, Eventi) e adapter.fill(dataset, Eventi_ECM)
Tutto ok con le letture e la relativa visualizzazione in un DataGrid.
Adesso ho preparato un Form per linserimento di una nuova riga per la tabella Eventi, quindi alla pressione del Button Inserisci, creo una nuova Row, riempio le colonne della nuova riga con i valori delle txtbox del form di inserimento, aggiungo la Row alla tabella nel DataSet e faccio lupdate delladapter ed ecco lerrore.
Mettendo un punto di interruzione prima del comado Update, ho potuto estrarre listruzione SQL creata dal CommandBuilder: "INSERT INTO Eventi( TitoloCorso , Posti , Destinatario , Edizioni , DataInizio , DataFine , DateCorso , SedeCorso , Mod_Iscrizione , Accr_ECM , Note , Tipo , Tassa_Iscrizione ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? )".
Le colonne ci sono tutte meno IDRecord che è una chiave primaria autoincrementante e ho pensato che lerrore fosse li infatti nella versione manuale del comando SQL aggiungo manualmente il campo, ma sempre errore.
Sono alle prime armi ok, maaaaaa bhoooo, AIUTO!
Vi incollo il codice per la lettura dal DB e quello per lisert.
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
lun 5 lug 2004 - 09:26
Ciao gigimix,
forse non è questa la soluzione al tuo problema ma credo valga la pena tentare:
prova a inserire anche l'apice singolo quando inserisci i valori, ossia:
VALUES('" & id & "','" & Me.txbTitoloCorso.Text & "',' " & Me.txbPosti.Text & "',' " & Me.txbDestinatario.Text & "',' " & Me.txbEdizioni.Text & "',' " & Me.txbDataInizio.Text & "',' " & Me.txbDataFine.Text & "',' " & Me.txbDateCorso.Text & "',' " & Me.txbSedeCorso.Text & "',' " & Me.txbModIscrizione.Text & "',' " & Me.txbAccrediti.Text & "',' " & Me.txbNote.Text & "',' " & Me.txbTipo.Text & "',' " & Me.txbTassaIscrizione.Text & "')"
Può darsi che il problema sia legato al fatto che alcuni tipi (ad esempio le date) possano creare problemi.
prova anche manualmente questa operazione inserendo anziché questo:
VALUES (Greco antico,50,Rossi,Mondadori,15/09/2004,....
quest altro
VALUES('Greco','50','Rossi','Mondadori','15/09/2004',...)
Fammi sapere
Klaus
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
lun 5 lug 2004 - 09:31
In effetti non si nota l'apice:
VALUES( ' " & id & " ' , ' " & Me.txbTitoloCorso.Text & " ' , ' " & Me.txbPosti.Text & " ' , ' " & Me.txbDestinatario.Text & " ' , ' " & Me.txbEdizioni.Text & " ' , ' " & Me.txbDataInizio.Text & " ' , ' " & Me.txbDataFine.Text & " ' , ' " & Me.txbDateCorso.Text & " ' , ' " & Me.txbSedeCorso.Text & " ' , ' " & Me.txbModIscrizione.Text & " ' , ' " & Me.txbAccrediti.Text & " ' , ' " & Me.txbNote.Text & " ' , ' " & Me.txbTipo.Text & " ' , ' " & Me.txbTassaIscrizione.Text & " ' )"
Ciao
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 5 lug 2004 - 10:41
ciao,
per risolveri i problemi di questo tipo conviene utilizzare i parametri e usare stringhe tipo:
"insert into tabella (campo1,campo2) values (@campo1,@campo2)"
poi all'oggetto command aggiungi parametri alla collezione parameters con il nome @campo... e cosi anche se i tipi sono date, stringhe con apostrofi etc... tu sei a posto ;-)
io lo consiglio perche mi sonosempre trovato bene con questo metodo anche se scrivo qualche riga in piu...
ciao
gigimix
Profilo
| Newbie
36
messaggi | Data Invio:
mer 7 lug 2004 - 09:23
Grazie per l'aiuto ragazzi.
La soluzione che ho trovato è stata quella di mettere i nomi delle colonne tra parentesi quadre[]:
INSERT INTO [nometabella] ([TitoloCorso] , [datainizio], ecc....) values ('xxxx','yyyyy').
Resta il fatto che il commanbuilder non generava un' istruzione sintatticamente corretta....cime mai?
Torna su
Stanze Forum
Elenco Threads
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 !