Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994

    Leggere CSv su DataGridView, modificare e salvare come nuovo Db Access

    leggo il file csv con questo codice
    codice:
        Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
            Dim Filename As String = "F:\Documenti\Visual Studio 2015\Projects\LeggiFileTxtCampiFissi\storico1.txt"
            Dim lines = (From line In IO.File.ReadAllLines(Filename) Select line.Split(",")).ToArray
            For x As Integer = 0 To lines(0).GetUpperBound(0)
                DataGridView1.Columns.Add("Col" & x, "Col" & x)
            Next
            For x As Integer = 1 To lines.GetUpperBound(0)
                DataGridView1.Rows.Add(lines(x))
            Next
        End Sub
    vorrei esportare il contenuto della griglia in un nuovo db access
    Ultima modifica di patel; 17-02-2017 a 10:47

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non si "esporta" ma si inseriscono i dati nelle tabelle opportune.

    Usa una Connection per collegarti al DB e poi una Command con i Parameters per eseguire una frase SQL 'INSERT INTO' per ogni riga della griglia, usando la tabella e i campi opportuni.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    ho provato, ma mi sembra che il db deve essere già esistente, per questo parlavo di esportare

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ah, quindi intendevi "creare" il file del DB. Questa � un'altra storia ...

    Lo puoi fare utilizzando la libreria ADOX (� una libreria COM), vedi questo documento

    https://support.microsoft.com/en-us/...ual-basic-.net

    ma � pi� semplice avere un file DB "modello" incluso nel tuo progetto (anche nelle risorse) e usarlo al momento.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    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 ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.