Aggiungere una colonna in una tabella di un file.accdb

di il
10 risposte

Aggiungere una colonna in una tabella di un file.accdb

Buongiorno, non riesco ad aggiungere una nuova colonna in una tabella di un database tramite codice.
Ho fatto dei tentativi, e ne scrivo subito uno, ma essendo poco pratico penso che ci sia un problema di concetto.
Vorrei aggiungere la colonna "Attivo", alla tabella "Parametri"

Dim StrComando As String = "(ALTER TABLE Parametri ADD Attivo) "
ComandoDB = New OleDb.OleDbCommand(StrComando, ConnessioneFileDBn)
ComandoDB.ExecuteNonQuery()
ComandoDB.Dispose()

e questo è l'errore:
System.Data.OleDb.OleDbException: 'Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.'

Il DB è sempre connesso e lo chiudo solo a chiusura del programma

10 Risposte

  • Re: Aggiungere una colonna in una tabella di un file.accdb

    fabio1974it ha scritto:


    Dim StrComando As String = "(ALTER TABLE Parametri ADD Attivo) )"
    Questo comando DDL non mi sembra corretto: manca il tipo del campo, ci sono delle parentesti di troppo...
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Alka ha scritto:


    fabio1974it ha scritto:


    Dim StrComando As String = "(ALTER TABLE Parametri ADD Attivo) )"
    Questo comando DDL non mi sembra corretto: manca il tipo del campo, ci sono delle parentesti di troppo...
    Si nel copiare ho sbagliato, ma non è quello che mi ha dato l'errore
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    fabio1974it ha scritto:


    Si nel copiare ho sbagliato, ma non è quello che mi ha dato l'errore
    Copia il codice corretto, e tutta la parte di codice significativo: se vediamo un'altra versione, non ci capiamo nulla e non distinguiamo i tuoi errori di copiatura da quelli effettivi.
  • Re: Aggiungere una colonna in una tabella di un file.accdb


    vi allego la foto dell'errore. con il codice dietro
    vi allego la foto dell'errore. con il codice dietro


    Ma a prescindere dal mio codice, mi farebbe comodo un esempio per aggiungere, tramite codice, una colonna nuova ad una tabella di un file .accdb
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Togli le parentesi. L'istruzione SQL non può iniziare con una parentesi, peraltro inutile. Inoltre specifica il tipo della colonna, come ti è già stato detto. Per gli esempi -->
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Ti ringrazio per il link dove ho trovato parecchie cose interessanti.
    ho fatto delle prove e mi da un errore che poi ho risolto chiudendo la connessione per alcuni secondi e successivamente, dopo averla aperta, sono riuscito a inserire la colonna nuova. Ovviamente sapevo che non cera una colonna uguale.
    Vi posto l'immagine con l'errore e il codice con la soluzione. Se poi mi sai dire come ovviare al problema senza chiudere la connessione lo preferisco. Ho ipotizzato che potrebbe risultare aperta la tabella, e non la fa modificare, ma non so come si chiude una singola tabella del db.

    con errore
    con errore

    Public Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click
    Try
    If ConnessioneFileDBn.State = ConnectionState.Open Then
    ConnessioneFileDBn.Close()
    Sleep(6000)

    End If
    ConnessioneFileDBn = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & CartellaEseguiti & "Eseguiti_" & Cmb_File.SelectedItem & ".accdb")
    ConnessioneFileDBn.Open()

    Dim StrComando As String = "ALTER TABLE PARAMETRI ADD COLUMN ATTIVO TEXT(25)"
    ComandoDB = New OleDb.OleDbCommand(StrComando, ConnessioneFileDBn)
    ComandoDB.ExecuteNonQuery()
    ComandoDB.Dispose()

    Catch ex As Exception
    MsgBox(ex.Message)

    End Try




    End Sub
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Per modificare la struttura devi chiudere le connessioni, ovviamente. Ma poi a che ti serve modificare la tabella nel codice?
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Uso un file per vari programmi, dove uso sempre le stesse tabelle. Adesso che sto avendo delle esigenze diverse, invece di rifare il file, modifico le tabelle per quello che mi serve. tutto qui.
    Grazie per il prezioso aiuto
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Fossi in te preparerei il db come ti serbe con le modifiche fatte una volta per tutte con i tool appositi e non nel codice
  • Re: Aggiungere una colonna in una tabella di un file.accdb

    Probabilmente il database è aperto da un altro programma. Access?
Devi accedere o registrarti per scrivere nel forum
10 risposte