Oppure

Loading
22/12/08 16:04
xone2003
Ciao a tutti,
eccomi di nuovo qua con un problema..

Vorrei popolare un database .sdf con i dati presi da un archivio di access.

ho letto di tutto di più ma non ho idea di come fare.

I campi sono compatibili in termini sia di valori che di titoli colonne (ma per questi ultimi non credo vi sia importanza).

Ho portato tutti e due i database (sia quello vuoto.sdf che quello pieno.accdb) come dataset in una form creando un button evento per dare il via al trasferimento, però non riesco a scrivere un codice che mi faccia il passaggio dei dati da un database all'altro.(si tratta di circa 250 righe x 13 colonne)

qualcuno può darmi una dritta?
grazie mille!
aaa
23/12/08 8:21
Il Totem
Una volta riempito il database access, effettua un Update sull'altro attraverso il table adapter. Se hai creato le connessioni con il wizard, sarà anche presente nei controlli della toolbox un [NomeDatabase]TableAdapter, che gestisce i trasferimenti di dati da dataset e database e viceversa. Questo espone una funzione Update, alla quale bisogna passare come parametro un dataset o una tabella: se tu passi il dataset o la datatable caricati dall'altro database (access) trasferirai nell'sdf gli stessi dati.
aaa
23/12/08 14:28
xone2003
Un pò di codice riusciresti a postarlo?
Ci ho provato col table adapter...ma niente..

Ho trascinato le due tabelle nel dataset e volendo posso inserire anche la qry di update dato che la fa in automatico....
Attribuisce dei "?" ai valori da inserire..

Poi da codice dovrei dare un valore a quei "?" ?
Come posso riferire che ad esempio nella colonna "giorno" del database vuoto devono essere inseriti tutti i valori della colonna "Giorno1" presenti nell'altra tabella...e così via?

Ho presente come inserire con l' "insert to" dei valori nel database presi da varie text box, ma un inserimento massivo nisba!

grazie per l'aiuto
aaa
24/12/08 9:20
Il Totem
Se sai usare insert, allora usalo. Basta che invece da textbox leggi i valori dalla tabella caricata da access, non cambia niente.
aaa
24/12/08 11:43
xone2003
Ci ho provato...ma niente da fare.
Nel codice mi sottolinea come errore
"impossibile convertire il valore di tipo 'system.data.enumerablerowcollection(ofDate)'in'Date?'

la variabile l'ho attribuita così:
codice:

Dim Dat = From riga As DatiExcelDataSet.DatiExcelRow In Me.DatiExcelDataSet.DatiExcel _
Select riga.Data

InsertinDatiBici.ImportQuery1(Dat)


ImportQuery1 nel table adapter =
INSERT INTO DatiBici
(Data)
VALUES (@p1)

i campi data nelle due tabelle hanno lo stesso formato.
Sicuramente ho sbagliato qualcosa ma non ne vengo a capo!
Probabilmente così come l'ho inserita presuppone l'inserimento di una sola riga e non tutte quante?

non ho proprio idea.
aaa
15/01/09 7:21
xone2003
Non ci riesco, non riesco ad importare i dati.:d:d:d
aaa
15/01/09 16:21
ventu
Io conosco il c#
ma prima cosa devi creare la tabella con una query
CREATE TABLE nometabella (Colonna1 , Colonna2 ecc..)

Creata la tabella

leggi il primo database

fai un ciclo che scorre le righe e fai un insert:

"INSERT INTO NomeTabellaCreata(Colonna1,Colonna2, ecc..) VALUES(@Valore1,@Valore1, ecc..)";
utilizzando i paremetri inserisic i dati che vuoi.
hai il datarow del vecchio database row["nomecolonna"] il valore lo metti nel parametro che ti interessa e il gioco e fatto.

spreo di esserti stato di aiuto
ciao



Ultima modifica effettuata da ventu 15/01/09 16:22
aaa
15/01/09 19:17
Il Totem
Postato originariamente da xone2003:

Ci ho provato...ma niente da fare.
Nel codice mi sottolinea come errore
"impossibile convertire il valore di tipo 'system.data.enumerablerowcollection(ofDate)'in'Date?'

la variabile l'ho attribuita così:
codice:

Dim Dat = From riga As DatiExcelDataSet.DatiExcelRow In Me.DatiExcelDataSet.DatiExcel _
Select riga.Data

InsertinDatiBici.ImportQuery1(Dat)


ImportQuery1 nel table adapter =
INSERT INTO DatiBici
(Data)
VALUES (@p1)

i campi data nelle due tabelle hanno lo stesso formato.
Sicuramente ho sbagliato qualcosa ma non ne vengo a capo!
Probabilmente così come l'ho inserita presuppone l'inserimento di una sola riga e non tutte quante?

non ho proprio idea.


Come dice chiaramente il messaggio di errore, stai usando una collezione di date come se fosse una data sola. La query LINQ restituisce un oggetto particolare che, in parole semplice, è come un array di valori, in questo caso di date. Se vuoi inserire solo la prima userai Data(0), altrimenti userai un ciclo.
aaa