Oppure

Loading
16/01/09 17:38
xone2003
Ok , confusione totale!
ho pensato di fare un passo alla volta; conteggio delle righe del database "pieno" e poi con un ciclo for next ripeto l'operazione "insert to" tante volte quanto al n° di righe nel database vuoto.

ho inserito il database "pieno" ("datiexcel.accdb" con tabella di dati da cui importare "datitot";) nella soluzione creando un datiexceldataset ed un datitottableadapter.

Nell'anteprima del datitottableadapter mi visualizza correttamente (con select *) tutti i dati del database (202rig x 15col) ma quando inserisco il codice sottostante mi risponde con "0" (zero), come se fosse vuoto.

Dim Controllo = (From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
        Select riga).Count


        MsgBox(Controllo)


(ho provato anche togliendo le parentesi ed il .count mettendo controllo.count nel msgbox ma niente da fare)

teoricamente dovrebbe darmi 202 che è il numero di righe del database, al quale numero farò riferimento col ciclo for per l'import delle righe.

come principio d'inserimento ci siamo o sono fuori strada?
ho sbagliato qualcosa nel codice scritto sopra dato che non riesco a contare le righe del database?
grazie.:d
Ultima modifica effettuata da xone2003 16/01/09 17:43
aaa
17/01/09 14:37
Il Totem
Non facevi prima con Me.DatiExcelDataSet.DatiTot.Rows.Count ?
aaa
18/01/09 10:39
xone2003
Certo che si fa prima!
Ma non sapevo di questa abbreviazione.

tuttavia come nel caso del select non funziona, o meglio risponde con "0" come se non esistesse nessuna riga nel database.

non ho idea del perchè si comporti così.

il database datiexcel e relativa tabella datitot è pieno, il dataset l'ho creato e con il table adapter mi conferma l'esistenza di 202righe per 15 colonne quindi non capisco perchè il conteggio dia zero!

non so che fare.
aaa
18/01/09 13:48
Il Totem
Non risponde 0 come se non ci fosse niente, ma lo fa perchè effettivamente non c'è niente, non c'è possibilità di errore. Resta da vedere come hai fatto a verificare che esistono veramente 202 righe se il codice che hai usato te ne restituisce 0. Controllare che il database abbia 202 righe e dire che il datatable ne abbia 202 sono due cose diverse. Magari ti sei dimenticato di caricare la tabella all'inizio...
aaa
18/01/09 17:14
xone2003
il database è di Access .accdb con nome datiexcel
all'interno è inserita un'unica tabella "datitot" e sono presenti 202 righe di 15 colonne.la tabella è piena di dati verificato e riverificato e tra l'altro nell'anteprima del tableadapter nel dataset viene confermato tutto quanto visualizzando tutti i dati.

Sono sicuro che la tabella sia presente e piena di dati!

Vedo il database nella soluzione (cliccandoci sopra due volte lo apro tranquillamente e visualizzo i dati), il dataset è creato correttamente, il tableadapter risponde con risultati perfetti quindi non so cos'altro possa mancare!

il codice è scritto in un evento button_click...
e comprende l' ME.Datiexcel..... ed un misero msgbox quindi non saprei dove altro cercare.


Cosa vuol dire esattamente "dimenticato di caricare la tabella all'inizio"?
Probabilmente ho saltato qualche passaggio?
Ultima modifica effettuata da xone2003 18/01/09 17:15
aaa
19/01/09 16:44
Il Totem
Di solito, in Form_Load, si carica la tabella con il table adapter:
NomeTableAdapter.Fill(Me.NomeDataSet.NomeDataTable)
aaa
20/01/09 12:41
xone2003
in effetti funziona!
ho inserito il codice nella forma_load e la sisposta è 202 (correttamente).
Ovviamente non sapevo di dover caricare manualmente il tableadapter.... In effetti non avendolo mai fatto mi sono chiesto come fanno a funzionare tutte le altre form con le tabelle annesse.
Presumo che utilizzando visual studio 2008(vb.net) in qualche modo io abbia usato una qualche procedura automatica che mi ha permesso, senza che io lo sapessi, di caricare le tabelle nelle form.

Grazie per l'aiuto...:k:
ora proverò con l'import del database e Vi farò sapere.

La struttura con il select l'avevo utilizzata non per contare le righe (il msgbox serviva solo per vedere il funzionamento del conteggio, presenza tabella ecc..) ma per poter selezionare successivamente in funzione di un variabile che incrementa ognuna riga da importare.
(sperando di essere sulla strada giusta).
8-|8-|
aaa
21/01/09 10:12
xone2003
Eccomi con l'errore...

Ho scritto il codice che dovrebbe farmi l'import dei dati da un db all'altro....però ho problemi con un errore che continua a perseguitarmi !

le variabili dopo l'importquery1 sono tutte quante sottolineate con l'errore "impossibile convertire il valore di tipo 'system.data.EnumerableRowCollection (of Date)'in date? .....in 'string' ...in 'decimal' ecc..."
suppongo che sia dovuto al tipo di formattazione dei dati in partenza e quelli in arrivo...ma non ho idea di come uscirne!
anche perchè il tipo di dati delle due tabelle li ho resi uguali.
:d:d:d

Public Class Import

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim controllo = Me.DatiExcelDataSet.DatiTot.Rows.Count
        Dim i = 0

        For i = 1 To controllo Step 1
            If i = controllo Then
                Exit For
            End If

            Dim Bike = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Bicicletta
            Dim Cat = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Categoria
            Dim Dat = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Data
            Dim Desc = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Descrizione
            Dim Nots = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Note
            Dim CondizioniMet = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.CondizioniMeteo
            Dim Chilomet = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Chilometraggio
            Dim VMax = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.VelocitàMassima
            Dim AVG = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.VelocitàMedia
            Dim TT = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.TempoTotale
            Dim Year = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Anno
            Dim Day = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Giorno
            Dim Partec = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
                       Where riga.Nr = i Select riga.Partecipanti
            Dim InsertinDatiBici As DBDatiBiciDataSetTableAdapters.DatiBiciTableAdapter = New DBDatiBiciDataSetTableAdapters.DatiBiciTableAdapter
            Try
                InsertinDatiBici.ImportQuery1(Dat, Desc, Nots, CondizioniMet, Chilomet, VMax, AVG, TT, Year, Cat, Bike, Day, Partec)
                MsgBox("Inserimento in database completato" & i & "riga", MsgBoxStyle.Information)
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical)
            End Try
        Next
    End Sub

    Private Sub Import_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.DatiTotTableAdapter.Fill(Me.DatiExcelDataSet.DatiTot)
        Me.DatiBiciTableAdapter.Fill(Me.DbDatiBiciDataSet.DatiBici)
    End Sub
End Class
Ultima modifica effettuata da xone2003 21/01/09 10:15
aaa