79 messaggi dal 16 luglio 2003
Ciao ragazzi, ho un problema con l'aggiornamento dei dati sul database.
Sto lavorando con ado.net in modalità disconnessa, utilizzando come db un MsAccess.
Il DataBase è composto da tre tabelle le chiamerò A in relazione uno a molti con B in relazione uno a motli con C.
Adesso se provo ad inserire un dato nella tabella A tutto Ok, se ne inserisco uno nella Tabella B correlato al record della tabella A tutto Ok (ovviamente modificando la query), quando vado ad inserire un dato nella tabella C correlato alla B mi dice "ERRORE DI SINTASSI NELL'ISTRUZIONE INSERT INTO". E il codice si blocca proprio sul metodo UpDate dell'oggetto DataAdapter
Lo Odioooooooooo!!!!!!!!!!!!!!!!!!!.
Spero di essere stato chiaro potete aiutarmi?
Grazie mille...
Puoi riportare il comando SQL di inserimento in questione (quello che ti da errore), per favore? Grazie.

Ciao, Ricky.
Modificato da rickyvr il 06 settembre 2005 15.27 -

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
79 messaggi dal 16 luglio 2003
Ciao Ricky grazie per avermi risposto, la query è
"SELECT * FROM TabellaC"
....
E la query di inserimento?
Intento dire: il valore della proprietà CommandText dell'oggetto InsertCommand del tuo DataAdapter quale è?

Ciao, Ricky.
Modificato da rickyvr il 06 settembre 2005 15.36 -

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
79 messaggi dal 16 luglio 2003
E' sempre la stessa
"SELECT * FROM TabellaC"
.....
Fammi un'altra cortesia, riportami tutto il tuo codice di creazione del DataAdapter, così capisco che cosa hai fatto di preciso... Grazie!

Ciao, Ricky.

P.S. Comunque ad un InsertCommand deve corrispondere un comando SQL di inserimento: INSERT INTO...
Modificato da rickyvr il 06 settembre 2005 15.56 -

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
79 messaggi dal 16 luglio 2003
Questa è la prcedura che ho scritto per reggistrare le modifiche apportate al DataSet sul dataBase

Private Sub()
If MyDataSet.HasChanges Then
'crea un dataset contenente solo le righe modificate
Dim ds2 As DataSet = MyDataSet.GetChanges()
'aggiorna ogni tabella di dati singolarmente
For Each dt As DataTable In ds2.Tables
If dt.Rows.Count > 0 Then
For i As Integer = 0 To dt.Rows.Count - 1
Dim objRow As DataRow = dt.Rows(i)
'verifico lo stato dei Record
Select Case objRow.RowState
Case DataRowState.Added

Dim sql As String = "SELECT * FROM " & dt.TableName & ";"

Dim objConn As New OleDbConnection(Me.OttieniConnessione)
Dim objDataAdapter As New OleDb.OleDbDataAdapter
Dim objCommandBuilder As OleDbCommandBuilder

objDataAdapter.SelectCommand = New OleDbCommand(sql, objConn)
objCommandBuilder = New OleDb.OleDbCommandBuilder(objDataAdapter)

objConn.Open()

'Creazione del comando di INSERT
objDataAdapter.InsertCommand = objCommandBuilder.GetInsertCommand

objCommandBuilder.RefreshSchema()

objDataAdapter.Update(ds2, dt.TableName)
objConn.Close()

Case DataRowState.Delete

.....il codice per deletare....

end sub

Spero sia chiaro..

Ciao Daniele
Metti un breakpoint subito dopo l'istruzione di costruzione del comando di inserimento. Tramite debugging guarda cosa vale InsertCommand. In base all'errore che hai segnalato sembrerebbe esserci uno statement di inserimento non valido o formattato in modo errato.

Siamo sicuri che la stringa sql sia uno statement di lettura corretto? dt.TableName è valorizzato correttamente?

Secondo me, il problema sta lì!

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it

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.