PDA

View Full Version : Piccolo dubbio su VB.NET


Traxsung
19-01-2007, 22:22
Con visualbasic.net è possibile gestire basi di dati con ADO utilizzando comandi SQL.
Per intenderci... come avviene su VB6

Saluti
Giuseppe

simoneart
20-01-2007, 10:57
Si, puoi utilizzare ADO esattamente come lo utilizzavi in VB6.

Tuttavia ADO è un oggetto COM e non .NET per cui i programmi scritti in questo modo avranno bisogno di entrambe le piattaforme per funzionare.

Inoltre il debug di applicazioni .NET quando si utilizzano oggetti COM è molto più complicato.

Se hai modo e tempo ti conisglio di studiarti ADO.NET.

Traxsung
20-01-2007, 12:39
ADO.net lo trovo troppo difficile
Ascolta che intendi quando dici che ADO è un oggetto COM e non .NET per cui i programmi scritti in questo modo avranno bisogno di entrambe le piattaforme per funzionare?
Che te sappia con ado posso utilizzare comandi Sql ?
Inoltre con VB6 posso ottenere la stessa grafica di VB2005?

0rph3n
20-01-2007, 12:57
brrr mi fa ribrezzo solo a pensarci, oggetti com in .net!
adesso non per rompere le palle, ma quanto tempo hai dedicato ad ado.net per poter dire che è troppo complicato?!
secondo me è semplicemente fantastico...
dove trovi problemi?
se vuoi ti posso (possiamo) aiutare!

'iao

Traxsung
20-01-2007, 13:41
ho difficolta nel andare ad interagire con i database... in VB6 è molto + semplice.
Non riesco a fare le Select ecc ecc :(

0rph3n
20-01-2007, 14:48
allora in ado.net esistono diversi data provider, più o meno specifici per il dbms a cui ci si vuole interfacciare (SQLServer, Oracle, MySQL, OLE DB...).
ogni provider ha sostanzialmente gli stessi oggetti che si differenziano per il nome, per qualche metodo e proprietà.
Gli oggetti fondamentali sono:

Connection: rappresenta la connessione verso il db;
Command: rappresenta istruzioni sql, stored procedures etc etc;
DataReader: è un oggetto che permette di ottenere uno stream di dati dalla sorgente dei dati;
DataAdapter: viene usato per gestire il collegamento tra DataSet e la sorgente dei dati;
DataSet: consiste in una rappresentazione dei dati presenti in memoria, può essere assimilato allo schema di un database;
DataTable: simile al DataSet, con la differenza che non rappresenta l'intero schema ma una tabella;


Dopo questa microintroduzione (per la quale ho attinto da questo link http://www.dotnethell.it/articles/TutorialADONET.aspx) ti faccio qualche esempio:

SqlConnection con = New SqlConnection(ConnectionString);
SqlCommand cmd = New SqlCommand(CommandText, con);

//Utilizzo DataReader
SqlDataReader dr = cmd.ExecuteReader();
While (dr.Read())
{
x = dr.GetString(IndiceColonna1);
s = dr.GetInt(IndiceColonna2);
}

//Utilizzo DataAdapter
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable(nome);
DataSet ds = new DataSet(ds);
da.Fill(dt);
da.Fill(ds);

ovvio che questi sono esempi che ho buttato giù di fretta e che quindi li devi un po' adattare, inoltre tu parlavi di VB.NET mentre il codice che ho postato io riguarda c#, ma non è difficile la conversione!
...e poi se hai problemi, basta chiedere!

'iao

simoneart
20-01-2007, 18:09
Ascolta che intendi quando dici che ADO è un oggetto COM e non .NET per cui i programmi scritti in questo modo avranno bisogno di entrambe le piattaforme per funzionare?
Significa che per funzionare .net ha bisogno del Framework .Net installato.
Per far funzionare ado è necessario installarlo (ora non mi ricordo come si chiama il pacchetto).
In pratica se tu fai un programma in .Net e poi utilizzi ado (COM), hai bisogno di installare entrambi i componenti perchè il programma funzioni.

Che te sappia con ado posso utilizzare comandi Sql ?
Si, puoi utilizzare ado esattamente con la stessa sintassi con la quale lo usi in VB6.

Inoltre con VB6 posso ottenere la stessa grafica di VB2005?
No o almeno non in maniera automatica. Se usi VB6 utilizzi le librerie grafiche di VB6 che chiaramente sono diverse da qulle .NET.

Prova a cercare in giro però, magari esiste qualche componente da installare per realizzare programmi in VB6 con una grafica un pò più vicina a WinXP