mi vengono in mente alcune possibilità:
i dati vengono salvaguardati, ma un backup è consigliabile
1) uso AdoX
codice:
'Aggiunge/toglie colonna con AdoX
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim adoCn As New ADODB.Connection
adoCn.Open(StringaConnessione)
Dim cat As New ADOX.CatalogClass
cat.ActiveConnection = adoCn
Dim t As ADOX.Table = cat.Tables("campi")
Try
t.Columns.Append("xyz", ADOX.DataTypeEnum.adWChar, 50)
Catch ex As Exception
t.Columns.Delete("xyz")
Finally
adoCn.Close()
Libreria.DataBind(Me.DataGrid1, StringaConnessione, "SELECT * FROM CAMPI", "ID")
End Try
End Sub
2) uso Alter Table
codice:
'Aggunge/toglie colonna con Alter Table
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'con.Execute("CREATE TABLE tblCustomers (CustomerID LONG NOT NULL, [Last Name] TEXT(50) NOT NULL, [First Name] TEXT(50) NOT NULL, Phone TEXT(10), Email TEXT(50), [BYTE] BYTE, [INTEGER] SMALLINT, [LONG] LONG, [SINGLE] SINGLE, [DOUBLE] DOUBLE, [DATE] DATE, [CURRENCY] CURRENCY, [LOGICO] LOGICAL, [MEMO] MEMO, [COUNTER] AUTOINCREMENT, [OLEOBJECT] OLEOBJECT )")
'con.Execute("CREATE INDEX idxCustomerID ON tblCustomers (CustomerID) WITH PRIMARY")
Dim con As OleDbConnection
Dim sql$ = "ALTER TABLE CAMPI ADD COLUMN XYZ LONG"
Dim Com As OleDbCommand
Try
con = New OleDbConnection(StringaConnessione)
con.Open()
Com = New OleDbCommand(sql, con)
Com.ExecuteNonQuery()
Catch ex As Exception
Try
sql = "ALTER TABLE CAMPI DROP COLUMN XYZ "
Com.CommandText = sql
Com.ExecuteNonQuery()
Catch ex1 As Exception
PrintLn(ex.Message)
End Try
Finally
con.Close()
Libreria.DataBind(Me.DataGrid1, StringaConnessione, "SELECT * FROM CAMPI", "ID")
End Try
End Sub
3) possibilità
300 km non sono molti. Vai in macchina, modifichi la tabella, ti fai invitare a pranzo e ti fai pagare il disturbo