Oppure

Loading
28/05/09 8:55
passamaglia
Ciao a tutti, vorrei una dritta per risolvere questo problema:
ho un database access (mdb) dove ci sono diverse tabelle.
Io dovrei copiare l'intero contenuto di una riga della tabella (diciamo "A";) in una tabella gia' esistente (diciamo "B";) inserendo contemporanemante i dati anche in 2 colonne che nella tabella "A" non ci sono.
Esemmpio:
tabella "A" ---- tabella "B"
colonna "pippo"------->colonna "pippo"
colonna "pluto"------->colonna "pluto"
etc. (sono 90 colonne in tutto)
Per completezza dico che uso tableadapter e bindingsource creati automaticamente inserendo le tabelle nei vari form.
Grazie a chiunque mi volesse aiutare.:k:

Ho omesso di scrivere che utilizzo VB2008 express
Ultima modifica effettuata da passamaglia 28/05/09 8:57
aaa
28/05/09 20:28
Jeremy
Ciao.
Hai già scritto un pò di codice sul quale possiamo ragionarci sopra???
Ad ogni modo, a grandi linee, sarebbe sufficiente aggiungere due colonne al datatable "A" per renderlo strutturalmente uguale al datatable "B" per poi usare l'automazione di ADO.NET per persistere le modifiche nel DB......a grandi linee eee!!

Facci sapere...
Ciao
aaa
28/05/09 22:08
passamaglia
Ciao,purtroppo il db e' "intoccabile" e non posso in alcun modo permettermi di modificarlo.
Mi mancava giusto il codice per copiare pari-pari una riga selezionata su un'altra tabella che ha i campi con lo stesso identico nome tranne 2 che sono in piu' e che comunque mi servono.
Il codice del progrmma l'ho parzialmente gia' scritto ma serve per fare altro...
Sono impantanato su questa cosa.
aaa
28/05/09 22:32
Jeremy
Ciao
Postato originariamente da passamaglia:
Ciao,purtroppo il db e' "intoccabile" e non posso in alcun modo permettermi di modificarlo.

Hai capito male .... io parlavo di DataTable non di Tabella del db.

Mi mancava giusto il codice per copiare pari-pari una riga selezionata su un'altra tabella che ha i campi con lo stesso identico nome tranne 2 che sono in piu' e che comunque mi servono.

Ci sono diverse tecniche per farlo ... per questo ti chiedevo di postare un pò di codice sul quale poter ragionare.
Giusto per capire anche a fondo lo scenario.

Il codice del progrmma l'ho parzialmente gia' scritto ma serve per fare altro...
Sono impantanato su questa cosa.

Va benissimo qualsiasi cosa tu abbia di già pronto .... altrimenti rischiamo di darti suggerimenti che non centrano nulla....al quale poi devi rispondere che non abbiam capito ....per il quale poi ti chiediamo maggiori informazioni ...etc...etc...
Facciamo un saltino avanti.:asd:

Facci sapere...
Ciao
aaa
29/05/09 5:36
passamaglia
Ribadisco i concetti:
1)Cosa non e' chiaro in quello che chiedo: c'e' un database access con diverse tabelle, mi serve copiare i dati dalla tabella "A" alla tabella "B" del medesimo database(ovviamente le colonne che hanno nome identico)inserendo contemporaneamente i dati in 2 colonne che nel database "A" non ci sono.
Come ho gia' scritto NON posso modificare nulla (dataset,datatable o quello che volete),deve restare tutto cosi' com'e'.

2)Se e' una funzione che devo inserire ex-novo, cosa cacchio invio come codice???????
Il resto del programma che si basa su textbox e label?????????
Ho gia' scritto -e lo ripeto- che i datatable e compagnia bella sono gia' stati inseriti nei form con la procedura automatica (trascino la tabella che mi interessa sul form).

Sicuro che sono io a non aver capito?:pat:
aaa
29/05/09 8:37
Jeremy
Postato originariamente da passamaglia:
Ribadisco i concetti:
Come ho gia' scritto NON posso modificare nulla (dataset,datatable o quello che volete),deve restare tutto cosi' com'e'.

A dire il vero, hai scritto che non potevi modificare il db ....non gli oggetti disconnessi che lo rappresentano....ad ogni modo ..... c'è un motivo particolarmente importante per il quale tu non possa modificare *temporaneamente* la struttura di un datatable o crearne uno ex-novo che ti serva per fare ciò che ti serve????
Non che sia importante, ma ti avrebbe semplicemente permesso di usare l'automazione del dataadapter.

Ad ogni modo .... potresti ciclare la prima datatable n volte quante sono i record ed eseguire n query che puntano alla tabella "B" del Db aggiungendo, parametricamente, i 2 campi che ti servono!
Se invece, hai già pensato a qualcosa, ma non sai come realizzarlo ..... DICCELO.

Facci sapere....
Ciao



aaa
29/05/09 8:46
passamaglia
Se avessi saputo come realizzarlo non avrei scritto qui, non ti pare?
Grazie lo stesso, cerchero' altrove qualcuno che mi dia veramente una dritta scrivendo quattro righe di codice e che non continui a polemizzare inutilmente intasando il forum.

aaa
29/05/09 14:26
Il Totem
Io sono daccordo con Jeremy. Basta un ciclo del tipo:
'tableA e tableB sono le tabelle in questione
Dim Mapping As New Dictionary(Of Int32, Int32)

'...

For Each Row As DataRow In tableA.Rows
   Dim Items(tableB.Columns.Count - 1) As Object
   For I As Int32 = 0 To Row.ItemArray.Length - 1
      Items(Mapping(I)) = Row.Item(I)
   Next
   tableB.Rows.Add(Items)
Next

Mapping è un dizionario che contiene le corrispondenze delle colonne dalla tabella A alla tabella B. Ad esempio, il primo elemento di A potrebbe essere il primo di B, e il secondo di A il terzo di B, poiché il secondo di B è il campo in più di cui stavi parlando. Il dizionario verrà, perciò, riempito così:
Mapping.Add(0, 0)
Mapping.Add(1, 2)
Mapping.Add(2, 3)
'...
aaa