Non riesco ad inserire una riga in una tabella di un database ACCESS (...

venerdì 02 luglio 2004 - 16.19

gigimix Profilo | Newbie

L’errore che mi viene restituito è: Errore di sintassi nell’istruzione INSERT INTO.
Ho provato sia con il CommandBuilder che con un’istruzione SQL ad hoc, ma l’errore è 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 l’inserimento 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 l’update dell’adapter ed ecco l’errore.
Mettendo un punto di interruzione prima del comado Update, ho potuto estrarre l’istruzione 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 l’errore fosse li infatti nella versione “manuale” del comando SQL aggiungo 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 l’isert.

'pressione del tasto visualizza Eventi
Private Sub btnEventi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEventi.Click

If Session("tasto") = "Progetti Formativi Aziendali" Then 'se si arriva dalla visualizzazione di pfa, azzero i contatori del datagrid
dgEventiEcm.SelectedIndex = -1 'deseleziona eventuali righe nel datagrid che visualizza gli eventi
dgEventiEcm.CurrentPageIndex = 0 'azzera il valore del paginatore
End If
allButtonWhite()
Me.btnEventi.BackColor = System.Drawing.Color.Transparent
Me.btnModEventi.Visible = False
Session("tasto") = "Eventi"
dgEventiEcm.SelectedIndex = -1 ‘deseleziona riga dal datagrid
AllCenterPannelsClose()
Me.PanCmd.Visible = True
panEventi.Visible = True
If Not ds.Tables.Contains("Eventi") Then 'se il dataset non contiene la tabella eventi
panEventi.Visible = True
Dim queryString As String = "SELECT * FROM Eventi order by DataInizio DESC"
adapter.SelectCommand = New OleDbCommand(queryString, connessione)
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
adapter.Fill(ds, "Eventi")
dgEventiEcm.DataSource = ds.Tables("Eventi")
dgEventiEcm.DataBind()
Else
' se la tabella Eventi nel dataset esiste
panEventi.Visible = True
dgEventiEcm.DataSource = ds.Tables("Eventi")
dgEventiEcm.DataBind()
End If
End Sub
La variabile “connessione” è definita fuori dalla sub ed è una oledbconnection contenente il percorso del database.
La variabile “adapter” è definita fuori dalla sub.

'pressione tasto INSERISCI nel form NUOVO EVENTO
Private Sub btnInserisci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserisci.Click
If Me.rblSelDestinazione.SelectedIndex = 0 Then 'inserimento riga in tabella EVENTI(controlla un radiobuttonlist)
Dim cmdBuild As New OleDbCommandBuilder(adapter)
Dim EventiRow As DataRow = ds.Tables("Eventi").NewRow() 'crea una nuova riga tipo tabella EVENTI
EventiRow("TitoloCorso") = Me.txbTitoloCorso.Text 'copia i dati delle text del form nelle colonne della nuova riga
Dim id as i
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