21/01/09 15:28
Il Totem
Mi sembra di avertelo già detto. Una query linq restituisce UNA LISTA di valori e NON un solo valore. Sarebbe come scrivere:
E' sbagliato. Un array di stringhe non è convertibile in una stringa, così una collezione di qualsiasi tipo di dato non è convertibile in una sola variabile di quel tipo. Capit?
Dim Array(2) As String Dim Stringa As String Stringa = Array
E' sbagliato. Un array di stringhe non è convertibile in una stringa, così una collezione di qualsiasi tipo di dato non è convertibile in una sola variabile di quel tipo. Capit?
aaa
21/01/09 18:40
xone2003
Hai perfettamente ragione Totem,
me l'avevi già detto!
Tuttavia pensavo che con un select mirato e sapendo con certezza che il risultato poteva solo ed esclusivamente essere un valore unico si potesse comunque utilizzare senza specificare il (0) dopo la variabile.
Ovviamente non sapevo finchè mi hai delucidato dello (0) e nemmeno del fatto che il select risponde con un elenco di valori!
Ho corretto con le indicazioni che mi hai dato e con qualche aggiustamento sono riuscito ad importare tutto (con calma verificherò i dati ma sembra tutto ok)!!
Quindi ringrazio per il grande ed indispensabile aiuto!!!
GRAZIE!!!!
me l'avevi già detto!
Tuttavia pensavo che con un select mirato e sapendo con certezza che il risultato poteva solo ed esclusivamente essere un valore unico si potesse comunque utilizzare senza specificare il (0) dopo la variabile.
Ovviamente non sapevo finchè mi hai delucidato dello (0) e nemmeno del fatto che il select risponde con un elenco di valori!
Ho corretto con le indicazioni che mi hai dato e con qualche aggiustamento sono riuscito ad importare tutto (con calma verificherò i dati ma sembra tutto ok)!!
Quindi ringrazio per il grande ed indispensabile aiuto!!!
GRAZIE!!!!
aaa
23/01/09 9:27
xone2003
Purtroppo sono andato a complicarmi la vita e se l'insert lo faccio senza alcun criterio, come appena postato, tutto ok.....mentre se cerco di effettuare un controllo delle eventuali righe duplicate non funziona ed inserisce comunque tutto.
ho pensato che il problema potesse essere un mancato aggiornamento della tabella nel momento del controllo duplicati ma non è questo il caso.
Credo si tratti di come vengono gestite le righe di controllo alla dichiarazione K.
Probabilmente il risultato della select è zero/nessuna.
Preciso che il nome delle colonne "Bicicletta" e "categoria" sono gli stessi ma in due tabelle differenti.
Praticamente il funzionamento dovrebbe essere:
ad ogni riga del database "datitot" da cui attingere i dati, prendo la prima riga "bicicletta" e "categoria" poi questi valori li confronto con quelli eventualmente presenti nella tabella Tipologiabike alla voce "bicicletta" e "categoria" e se non sono presenti (not k>=1) allora le inserisco.
Però come ho già detto, mi inserisce tutto quanto indipendentemente dai duplicati, quindi dopo aver provato ad effettuare un update della tabella ad ogni ciclo non saprei come modificare il codice.
Sono sicuro che mi prenderò un'altra tirata d'orecchie....perchè credo di intuire che il problema sia sempre nel discorso valore unico o lista di valori.
ho pensato che il problema potesse essere un mancato aggiornamento della tabella nel momento del controllo duplicati ma non è questo il caso.
Credo si tratti di come vengono gestite le righe di controllo alla dichiarazione K.
Probabilmente il risultato della select è zero/nessuna.
Preciso che il nome delle colonne "Bicicletta" e "categoria" sono gli stessi ma in due tabelle differenti.
Praticamente il funzionamento dovrebbe essere:
ad ogni riga del database "datitot" da cui attingere i dati, prendo la prima riga "bicicletta" e "categoria" poi questi valori li confronto con quelli eventualmente presenti nella tabella Tipologiabike alla voce "bicicletta" e "categoria" e se non sono presenti (not k>=1) allora le inserisco.
Però come ho già detto, mi inserisce tutto quanto indipendentemente dai duplicati, quindi dopo aver provato ad effettuare un update della tabella ad ogni ciclo non saprei come modificare il codice.
Sono sicuro che mi prenderò un'altra tirata d'orecchie....perchè credo di intuire che il problema sia sempre nel discorso valore unico o lista di valori.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim controllo = Me.DatiExcelDataSet.DatiTot.Rows.Count Dim i = 0 For i = 1 To controllo Step 1 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 InsertinTipologiaBike As DBDatiBiciDataSetTableAdapters.TipologiaBikeTableAdapter = New DBDatiBiciDataSetTableAdapters.TipologiaBikeTableAdapter Dim k = From riga As DBDatiBiciDataSet.TipologiaBikeRow In Me.DbDatiBiciDataSet.TipologiaBike _ Where riga.Bicicletta = Bike(0) And riga.Categoria = Cat(0) _ Select riga.Bicicletta & riga.Categoria If Not k.Count >= 1 Then Try InsertinTipologiaBike.InsertQuery2(Bike(0), Cat(0)) TipologiaBikeTableAdapter.Update(DbDatiBiciDataSet) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) End Try Else End If Next MsgBox("inserimento nel database Biciclette completato") End Sub End Class
Ultima modifica effettuata da xone2003 23/01/09 9:30
aaa
23/01/09 14:39
xone2003
OK OK OK!!!
trovato!
le orecchie me le tiro da solo!!
Ho "dimenticato" dopo la riga di insert una ulteriore in cui ricarico la tabella prima del successivo ciclo for!
in pratica aggiungendo :
dopo l'insert e quindi prima del successivo ciclo "for" tutto è andato a posto!!
Devo dire che il timore di una tirata d'orecchie mi è servito!
grazie!
trovato!
le orecchie me le tiro da solo!!
Ho "dimenticato" dopo la riga di insert una ulteriore in cui ricarico la tabella prima del successivo ciclo for!
in pratica aggiungendo :
Me.TipologiaBikeTableAdapter.Fill(Me.DbDatiBiciDataSet.TipologiaBike)
dopo l'insert e quindi prima del successivo ciclo "for" tutto è andato a posto!!
Devo dire che il timore di una tirata d'orecchie mi è servito!
grazie!
Ultima modifica effettuata da xone2003 23/01/09 15:16
aaa