Scrivere array in datatable

di il
3 risposte

Scrivere array in datatable

Ciao a tutti

avrei gentilmente bisogno di capire qual è il metodo migliore e corretto per inserire un array in una cella Datatable e successivamente estrarlo.

Ho provato vari modi

'Creo DataTable

Dim TableA = New DataTable
Dim r As DataRow
TableA.Columns.Add("P1", GetType(String))    'Esempio 1
TableA.Columns.Add("P2", GetType(String))    'Esempio 2
TableA.Columns.Add("P3", GetType(Array))     'Esempio 3

'Popolo DataTable

r = TableA.NewRow
r("P1") = String.Join(",", {100, 200}.ToArray)
r("P2") = "{" & String.Join(",", {100, 200}.ToArray) & "}"
r("P3") = {100, 200}  ‘visulaizza sul Datatable System.Int32 e non i valori dell’array
TableA.Rows.Add(r)

'Estraggo Dati (al momento il migliore mi sembra questo)

Dim ArrayProva = TableA.Rows(0)("P1").split(",")

Grazie mille

3 Risposte

  • Re: Scrivere array in datatable

    20/01/2024 - piter123 ha scritto:


    avrei gentilmente bisogno di capire qual è il metodo migliore e corretto per inserire un array in una cella Datatable e successivamente estrarlo.

    Visto che poi devi estrarlo dal DataTable, perché inserirlo?

    Le classi e i componenti per lavorare con ADO.NET in modalità disconnessa sono lenti rispetto a oggetti e strutture dati native, e andrebbero evitati per scopi non specificatamente adatti al loro ambito (cache di dati provenienti da DB o da ricaricare).

    Per il resto, la “suddivisione” dell'array la puoi fare con lo stesso metodo che utilizzi per farlo su una qualsiasi variabile tipo stringa, ma bisogna  capire qual è lo scenario e la necessità specifica.

  • Re: Scrivere array in datatable

    Sono d'accordissimo con Alka che probabilmente sarebbe meglio usare altre soluzioni (List, Dictionary eccetera), comunque puoi risolvere così:

            'Creo DataTable
            Dim TableA = New DataTable
            Dim r As DataRow
            TableA.Columns.Add("P3", GetType(Integer()))
    
            'Popolo DataTable
            r = TableA.NewRow
            r("P3") = {100, 200, 300, 400, 500}
            TableA.Rows.Add(r)
    
            Dim ArrayProva = TableA.Rows(0)("P3")
  • Re: Scrivere array in datatable

    Grazie mille per le risposte

    Interessante anche List e Dictionary

    Grazie

Devi accedere o registrarti per scrivere nel forum
3 risposte