Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - VB.Net - Import e popolazione database da codice
Forum - C# / VB.NET - VB.Net - Import e popolazione database da codice - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:28
Mercoledì, 21/01/2009
Mi sembra di avertelo già detto. Una query linq restituisce UNA LISTA di valori e NON un solo valore. Sarebbe come scrivere:
Codice sorgente - presumibilmente VB.NET

  1. Dim Array(2) As String
  2. Dim Stringa As String
  3.  
  4. 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?

PM Quote
Avatar
xone2003 (Normal User)
Rookie


Messaggi: 32
Iscritto: 27/11/2008

Segnala al moderatore
Postato alle 19:40
Mercoledì, 21/01/2009
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!!!!
:k::k::k::k::rotfl::rotfl::rotfl:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:43
Giovedì, 22/01/2009
Ecco. :k:

PM Quote
Avatar
xone2003 (Normal User)
Rookie


Messaggi: 32
Iscritto: 27/11/2008

Segnala al moderatore
Postato alle 10:27
Venerdì, 23/01/2009
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.

:d:d

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.        
  3.         Dim controllo = Me.DatiExcelDataSet.DatiTot.Rows.Count
  4.         Dim i = 0
  5.  
  6.         For i = 1 To controllo Step 1
  7.             Dim Bike = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
  8.                       Where riga.Nr = i Select riga.Bicicletta
  9.             Dim Cat = From riga As DatiExcelDataSet.DatiTotRow In Me.DatiExcelDataSet.DatiTot _
  10.                       Where riga.Nr = i Select riga.Categoria
  11.             Dim InsertinTipologiaBike As DBDatiBiciDataSetTableAdapters.TipologiaBikeTableAdapter = New DBDatiBiciDataSetTableAdapters.TipologiaBikeTableAdapter
  12.             Dim k = From riga As DBDatiBiciDataSet.TipologiaBikeRow In Me.DbDatiBiciDataSet.TipologiaBike _
  13.                     Where riga.Bicicletta = Bike(0) And riga.Categoria = Cat(0) _
  14.                     Select riga.Bicicletta & riga.Categoria
  15.             If Not k.Count >= 1 Then
  16.                 Try
  17.                     InsertinTipologiaBike.InsertQuery2(Bike(0), Cat(0))
  18.                     TipologiaBikeTableAdapter.Update(DbDatiBiciDataSet)
  19.                 Catch ex As Exception
  20.                     MsgBox(ex.Message, MsgBoxStyle.Critical)
  21.                 End Try
  22.             Else
  23.             End If
  24.         Next
  25.         MsgBox("inserimento nel database Biciclette completato")
  26.     End Sub
  27. End Class


Ultima modifica effettuata da xone2003 il 23/01/2009 alle 10:30
PM Quote
Avatar
xone2003 (Normal User)
Rookie


Messaggi: 32
Iscritto: 27/11/2008

Segnala al moderatore
Postato alle 15:39
Venerdì, 23/01/2009
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 :
Codice sorgente - presumibilmente Plain Text

  1. 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!

:k::k:

Ultima modifica effettuata da xone2003 il 23/01/2009 alle 16:16
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo