+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

struttura tabella errata usando add.row e add.column

  1. #1
    suchigno non  in linea Scolaretto
    Ciao a tutti, ho questo problema.
    Ho un dataset con una sola tabella ed una sola colonna (dtTabella)
    Devo aggiungere ad un altro dataset (dsCoppiaCella anche lui con una sola tabella) la colonna che sta in dtTabella.
    Con un ciclo (qui non presente) dtTabella cambia i dati della prorpia colonna e devo aggiungerli ad una nuova colonna di dsCellaCoppia.

    Creo un dataset ed aggiungo una table:
    dsCoppiaCella = New DataSet()
    dsCoppiaCella.Tables.Add(
    "Cella")

    Creo ed aggiungo una colonna:
    Dim dtColonna As DataColumn
    dtColonna = New DataColumn
    dtColonna.DataType = System.Type.GetType(
    "System.Double")
    dtColonna.Caption = "Nome Colonna"
    dtColonna.ColumnName = "Nome Colonna"
    dsCoppiaCella.Tables("Cella").Columns.Add(dtColonna)

    Creo la riga da aggiungere:
    Dim dtRiga As DataRow

    For j = 0 To 100
    dtRiga = dsCoppiaCella.Tables("Cella").NewRow
    dtRiga(strElemento) = dtTabella.Tables(0).Rows(j)(0)
    dsCoppiaCella.Tables("Cella").Rows.Add(dtRiga)
    Next j

    Quando aggiungo un'altra colonna, con centinaia di righe il risultato questo:
    (esempio 4 colonne da un centinaio di righe, ogni singola colonna sta in dtTabella e va aggiunta nel dataset dsCoppiaCella)

    1
    2
    6
    4
    7
    5
    .
    .
    ..... 5
    ..... 3
    ..... 2
    ..... 1
    ..... 9
    ..... .
    ..... .
    ........... 6
    ........... 4
    ........... 3
    ........... 2
    ........... .
    ........... .


    mi aggiunge le righe sempre dalla riga successiva alla colonna precedente, trovandomi cosi delle celle null.
    Ho provato a mettere il dataset in un datagrid ed il risultato era questo.
    Grazie.

  2. #2
    L'avatar di Cteniza
    Cteniza non  in linea Amanuense
    Mi sembra del tutto ovvio che la strategia di aggiungere righe non funzioni.
    Verifica il tuo ragionamento.
    Io passerei a: ricerca riga da integrare, modifica valore
    ℹ️ Leggi di pi su Cteniza ...

  3. #3
    suchigno non  in linea Scolaretto
    Si forse hai ragione, ma il problema che ogni colonna pu avere numero di righe diverse... non una struttura statica... quando aggiungo una colonna che ha pi righe della precedente che succede?
    Grazie.

  4. #4
    suchigno non  in linea Scolaretto
    Niente da fare ci ho provato anche con il merge ma non riesco a ricreare correttamente la table con tutte le colonne aggiunte....
    Suggrimenti?
    Grazie

  5. #5
    L'avatar di Gpanz
    Gpanz non  in linea Scolaretto
    prova cos

    crea un numero di righe pari al numero di righe contenuto nella colonna pi "lunga".

    successivamente:

    j=0
      for each colonna
        for i=0 to colonnaCorrente.NumeroDiRighe
          dsCoppiaCella.Tables(0).Rows(j)(i)= datiDaInserireNellaCellaCorrente()
        next i
        j+=1
      next j
    
    
    in alternativa senza dimensionare il dataset in anticipo, durante l'iserimento dei valori, puoi controllare di volta in volta se i = dataset.rows.count-1 allora inserisci una nuova riga.

    ciao
    ℹ️ Leggi di pi su Gpanz ...

  6. #6
    L'avatar di cippalippa
    cippalippa non  in linea Topo di biblioteca
    Come non detto! mi sono accorto di avere sbagliato discussione...
    ℹ️ Leggi di pi su cippalippa ...

  7. #7
    L'avatar di cippalippa
    cippalippa non  in linea Topo di biblioteca
    Per curiosit: Hai risolto, oppure devo cercare di aiutarti?
    ℹ️ Leggi di pi su cippalippa ...

  8. #8
    suchigno non  in linea Scolaretto
    Grazie a tutti. Per adesso ho risolto in questo modo. Invece che aggiungere una datacolumn per volta al mio dataset.table(0), aggiungo una datatable per volta. Quindi avr nel mio dataset (dsCellaCoppia) non una table(0) con pi colonne... (questo avrei voluto) ma mi ritrovo un dataset con table(0)... table(1)... table(n) nel ciclo per estrarre i dati non scorro le colonna dell'unica tabella, ma scorro le tabelle che stanno nel dataset.... Se riuscissi ad inserire le colonne sarebbe meglio....
    Grazie

  9. #9
    L'avatar di cippalippa
    cippalippa non  in linea Topo di biblioteca
    Guarda che bel regalino ti ho preparato...
    Se hai problemi a capire il codice chiedi pure.

    (Luciano: Non me la merito della reputazione (da te) per come ho presentato il lavoro? )
    (So che ti si torcono le budella al solo pensiero... )
    File allegati File allegati
    ℹ️ Leggi di pi su cippalippa ...

  10. #10
    L'avatar di Cteniza
    Cteniza non  in linea Amanuense
    Quote Originariamente inviato da cippalippa Visualizza il messaggio
    Guarda che bel regalino ti ho preparato...
    Se hai problemi a capire il codice chiedi pure.

    (Luciano: Non me la merito della reputazione (da te) per come ho presentato il lavoro? )
    (So che ti si torcono le budella al solo pensiero... )
    Spinto dalla tua esortazione (dopo decidiamo il risultato) ho analizzato (basta una analisi superficiale per rilevare le cose pi grossolane)
            For i As Integer = 0 To UBound(MyArray1)
                MyArray1(i) = i + 1
            Next
    
    Ubound ?
    Dim ds As New DataSet()
            ds.Tables.Add("Table")
    
            Dim dc1 As New DataColumn
            dc1.ColumnName = "Colonna1"
            ds.Tables("Table").Columns.Add(dc1)
    
    Perch? usare l'ide per disegnare il dataset ti fa schifo?
    Dim contaA1 As Integer
            contaA1 = UBound(MyArray1)
    
    ridaje ubound, anche volendo meglio la forma
    Dim contA1 As Integer = myArray1.Length
    in quanto ai blocchi ripetuti 3 volte:
    For i As Integer = 0 To UBound(MyArray1)
    ...
    
    stendiamo un velo pietoso
    Se ti dico che si pu fare in una unica passata di append di righe cosa mi dici?
    Ora, alla vista del tuo codice che, se fossi tra i miei accoliti, ti farei riscrivere in toto, ti risparmio una reputazione negativa
    ℹ️ Leggi di pi su Cteniza ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Controllo struttura tabella
    Da patlupo nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 03-11-2015, 00:21
  2. Aggiornare una tabella usando un file excel
    Da francemic nel forum Microsoft Access
    Risposte: 57
    Ultimo Post: 20-01-2015, 16:04
  3. copiare solo struttura di una tabella
    Da sal21 nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 05-06-2014, 22:07
  4. Stampare tabella in datagrid usando molti filtri
    Da Fasyrio nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 26-02-2010, 12:42
  5. ACCESS: Copiare Struttura Tabella
    Da amanu86 nel forum Microsoft Access
    Risposte: 10
    Ultimo Post: 18-04-2007, 16:58