PDA

View Full Version : [vb.net] DataSet,DataAdapter help per niubbo


ilgrigio
20-08-2006, 16:32
salve a tutti sono alle primissime armi con vb.net
ho un database access con due tabelle : la prima "agenda" e la seconda "tipologia" legate da un campo fktipologia nella tabella agenda.

Vorrei visualizzare in un datagrid una cosa del genere

data descrizione tipologia
20/08/2006 bla bla bla tributi

invece di

data descrizione tipologia
20/08/2006 bla bla bla 1

quindi al posto di fktipologia dovrei stampare SELECT nome from Tipo where id= & tipologia. Non so come fare tutto questo con le classi ado.net

ecco come ho caricato i dati
Dim cn As OleDbConnection = New OleDbConnection(OleDbConnection1.ConnectionString)
ds = New DataSet("Agenda")
Dim da1 As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Agenda", cn)
da1.TableMappings.Add("Table", "Agenda")
da1.Fill(ds)

Dim da2 As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Tipo", cn)
da2.TableMappings.Add("Table", "Orders")
da2.Fill(ds)

Vi prego aiutatemi, c'ho capito veramente poco di database in vb.net
Mi bastano anche esempi di applicazioni simili che recuperano dati da pių tabelle. Sono settimane che vago in rete alla ricerca di qlks. GRAZIE MILLE!!!

Mitzuashi
22-08-2006, 20:52
Ciao IlGrigio,
scusami se mi permetto e soprattutto se sbaglio, ma penso che ti convenga ricavare i dati con una query di Join.

Esempio
Agenda -> Campi (data, descrizione, tipologia)
Tipo -> (id, descrizione)

Select Data, descrizione, T.descrizione
from Agenda A inner Join Tipo T
on (A.tipologia = T.id)

Ripeto, questo se ho capito cosa vuoi fare, poi ovviamente metti nel tuo DataSet la tabella risultante e il gioco č fatto.

motogpdesmo16
22-08-2006, 21:53
salve a tutti sono alle primissime armi con vb.net
ho un database access con due tabelle : la prima "agenda" e la seconda "tipologia" legate da un campo fktipologia nella tabella agenda.

Vorrei visualizzare in un datagrid una cosa del genere

data descrizione tipologia
20/08/2006 bla bla bla tributi

invece di

data descrizione tipologia
20/08/2006 bla bla bla 1

quindi al posto di fktipologia dovrei stampare SELECT nome from Tipo where id= & tipologia. Non so come fare tutto questo con le classi ado.net

ecco come ho caricato i dati
Dim cn As OleDbConnection = New OleDbConnection(OleDbConnection1.ConnectionString)
ds = New DataSet("Agenda")
Dim da1 As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Agenda", cn)
da1.TableMappings.Add("Table", "Agenda")
da1.Fill(ds)

Dim da2 As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Tipo", cn)
da2.TableMappings.Add("Table", "Orders")
da2.Fill(ds)

Vi prego aiutatemi, c'ho capito veramente poco di database in vb.net
Mi bastano anche esempi di applicazioni simili che recuperano dati da pių tabelle. Sono settimane che vago in rete alla ricerca di qlks. GRAZIE MILLE!!!
ti occorre un solo Data Adapter se fai la query come quella che ti ha suggerito Mitzuashi.
Select Agenda.Id, Agenda.Descrizione as DesAg,
Agenda.Tipologia,
Tipologia.descrizione as DesTi
from Agenda inner join tipologia
on agenda.tipologia=tipologia.id
in questo caso avrai tutto il contenuto della tabella Agenda senza specificare alcuna condizione nel caso delle date ad esempio. Se vuoi filtrare non ti resta che inserire alla query di sopra la clausola "where........." (ad esempio, come hai scritto tu, se sai l'id del record appartenente alla tabella agenda, ci scrivi "where id=2" o "where id=3" ecc)

Le istruzioni fondamentali per i database sono quelle che hai scritto tu in vb.net. Ti consiglio, pių che cercare sulla rete riguardo l'esecuzione di query in vb.net, di cercare o acquistare un libro che tratti della teoria dei database in generale e, a corredo, un manuale sql (ma di questi ne č piena la rete).
Spero di esserti stato utile.