per il momento ho risolto in questo modo
codice:
'------------------------- crea DB -----------------
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim cat As New ADOX.Catalog()
Dim dbpath As String = "F:\Documenti\Visual Studio 2015\Projects\Db3.accdb"
cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + DBPath)
cat = Nothing
ora si tratta di aggiungere la tabella, io ho salvato la griglia su csv e poi eportato il csv nel DB in questo modo
codice:
'------------------------- salva su csv -----------------
Dim fname As String = "F:\Documenti\Visual Studio 2015\Projects\TEMP.txt"
Dim headers = (From header As DataGridViewColumn In DataGridView1.Columns.Cast(Of DataGridViewColumn)()
Select header.HeaderText).ToArray
Dim rows = From row As DataGridViewRow In DataGridView1.Rows.Cast(Of DataGridViewRow)()
Where Not row.IsNewRow
Select Array.ConvertAll(row.Cells.Cast(Of DataGridViewCell).ToArray, Function(c) If(c.Value IsNot Nothing, c.Value.ToString, ""))
Using sw As New IO.StreamWriter(fname)
sw.WriteLine(String.Join(",", headers))
For Each r In rows
sw.WriteLine(String.Join(",", r))
Next
End Using
'------------------------- salva su db -----------------
Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbpath
Conn = New OleDbConnection(connStr)
Conn.Open()
Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT * INTO [db1] FROM [Text;DATABASE=F:\Documenti\Visual Studio 2015\Projects].[TEMP.txt]", Conn)
AccessCommand.ExecuteNonQuery()
Conn.Close()
End Sub
esiste una via più rapida ?