Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - vb.net lettura items di un datareader
Forum - C# / VB.NET - vb.net lettura items di un datareader

Avatar
Tonj (Normal User)
Newbie


Messaggi: 1
Iscritto: 11/02/2012

Segnala al moderatore
Postato alle 2:56
Sabato, 11/02/2012
Buona notte,

piccolo problemino, supponendo questo codice:
Codice sorgente - presumibilmente VB.NET

  1. sqlselect= "SELECT Articoli.idArt, Articoli.Marca, Marche_art.Marca
  2. FROM Marche_art INNER JOIN Articoli ON Marche_art.id_marca = Articoli.Marca
  3. WHERE Articoli.idArt=6"
  4.  
  5. comando = New MySqlCommand(sqlselect, cnn)
  6. dr = comando.ExecuteReader
  7. dr.Read()
  8. If dr.HasRows = True Then
  9.      lblidart.Text = dr.Item("idArt").ToString
  10.      txt_marca.Text = dr.Item(???????).ToString 'QUI VORREI VEDERE IL CAMPO MARCHE_ART.MARCA.
  11. ORA, SE METTO "MARCHE_ART.MARCA" RICEVO UN ERRORE,SE METTO SOLO "MARCA" MI DA IL PRIMO RISULTATO DELA QUERY CHE NON E' CIO CHE MI SERVE.  QUALCUNO POTREBBE DARMI INDICAZIONI ?:pat:8-|
  12. end if


PM
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 15:08
Domenica, 12/02/2012
Ciao.
Io userei un Adapter, per caricare i dati in un datatable.
I datatable si comportano proprio come una tabella, e hai la proprietà colomns che restituisce una collection delle colonne che hai estratto con la query. Fai un ciclo for each per farti stampare a video l'elenco delle colonne disponibili...

Comunque guarda qui:
http://www.dotnetperls.com/datatable

Grazie Renny, ma, scusami, con questo metodo nella collection mi ritrovo due colonne con lo stesso nome (Marca). O no? - Tonj - 13/02/12 00:00
Beh.. con questo metodo puoi vedere tutte le colonne che hai estratto con la query.. Verifica la struttura del tuo DB, delle relazioni tra le tabelle e chiaramente anche la query. O estrai 2 volte la stessa colonna o hai dati ridondanti nel tuo DB.. - Renny - 13/02/12 08:53


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM
Avatar
Snogar (Normal User)
Pro


Messaggi: 130
Iscritto: 09/01/2012

Up
1
Down
V
Segnala al moderatore
Postato alle 10:01
Lunedì, 13/02/2012
e se provi a scrivere :

txt_marca.Text = dr.GetValue(2).ToString

Al posto di :

txt_marca.Text = dr.Item("Marche_art.Marca").ToString

ok, snogar ma se dovessi aggiungere un campo alla tabella non potrei se non dopo aver modificato anche il codice... mizzika, ora provo la soluzione di Renny ma devo dire che c'è da diventare matti - Tonj - 13/02/12 10:17
Ma no... che matti? Se il database è organizzato bene, accedere ai dati è semplice. Estrai quello che ti serve con la query e riempi il tuo datatable, che non è altro che una tabella con le colonne che hai scelto, filtrato eventualmente dal comando WHERE. Da li poi puoi ciclare le colonne o le righe - Renny - 13/02/12 10:46


PM