passamaglia (Normal User)
Newbie
Messaggi: 14
Iscritto: 17/03/2008
|
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.
Ho omesso di scrivere che utilizzo VB2008 express
Ultima modifica effettuata da passamaglia il 28/05/2009 alle 10:57 |
|
Jeremy (Normal User)
Pro
Messaggi: 134
Iscritto: 08/02/2009
|
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
|
|
passamaglia (Normal User)
Newbie
Messaggi: 14
Iscritto: 17/03/2008
|
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.
|
|
Jeremy (Normal User)
Pro
Messaggi: 134
Iscritto: 08/02/2009
|
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.
Facci sapere...
Ciao |
|
passamaglia (Normal User)
Newbie
Messaggi: 14
Iscritto: 17/03/2008
|
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?
|
|
Jeremy (Normal User)
Pro
Messaggi: 134
Iscritto: 08/02/2009
|
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
|
|
passamaglia (Normal User)
Newbie
Messaggi: 14
Iscritto: 17/03/2008
|
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.
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Io sono daccordo con Jeremy. Basta un ciclo del tipo:
Codice sorgente - presumibilmente VB.NET |
'tableA e tableB sono le tabelle in questione '... 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ì:
Codice sorgente - presumibilmente Plain Text |
Mapping.Add(0, 0)
Mapping.Add(1, 2)
Mapping.Add(2, 3)
'...
|
|
|