Newsgroup: it.comp.lang.visual-basic
Titolo: Esempio codice tra ADO.NET e vecchio ADO

Scusate sto sviluppando con 
ADO.NET
.
Posto questa funzione che dato il codice IDFornitore mi ritorna la Ragione 
Sociale.. ma č possibile che con .NET devo fare questi 6 passaggi rispetto 
ai 2 di ADO 2.8 per VB6 ?
VERSIONE .NET Uso 4 Oggetti : Connection, DataAdapter, DataSet, DataView... 
possibile cosě tanti ?
   Public Function TrovaNomeClienteFornitore(ByVal id As Long) As String
        Dim Conn As OleDb.OleDbConnection
        Dim ds As New DataSet()
        Dim da As OleDb.OleDbDataAdapter
        Dim dw As DataView
        '1. Apro la connessione
        Conn = New 
OleDb.OleDbConnection(GemsErp.My.MySettings.Default.DatabaseAccess)
        Conn.Open()
        '2 Apro il data adapter con l'sql che voglio io
        da = New OleDb.OleDbDataAdapter("SELECT * FROM ClientiFornitori 
WHERE IdClienteFornitore=" & id, Conn)
        '3 Riempio il dataset chiamando la Fill del dataadapter
        da.Fill(ds, "ClientiFornitori")
        '4 Creo una dataview ed estrapolo la tabella che mi interessa
        dw = New DataView(ds.Tables("ClientiFornitori"))
        '5 Finalmente uso la data view per estrarre il nome del fornitore
        If dw.Count = 0 Then
            TrovaNomeClienteFornitore = ""
        Else
            TrovaNomeClienteFornitore = dw(0)("RagioneSociale").ToString
        End If
        '6 Chiudo la connection
        Conn.Close()
    End Function
Versione ADO6: Uso 2 oggetti soli: Connection e Recordset
   Public Function TrovaNomeClienteFornitore(ByVal id As Long) As String
        dim conn as ADO.Connection
        dim rs as ADO.Recordset
       conn.open strStringaConnessione
       rs.Open "SELECT * FROM ClientiFornitori WHERE IdClienteFornitore=" & 
id, Conn)"
       if not rs.eof then
                   TrovaNomeClienteFornitore=rs!RagioneSociale
      else
                   TrovaNomeClienteFornitore =""
       endif
      rs.close
 end function
grazie e saluti

 ha scritto nel messaggio 
news:46247e35$0$7751$5fc...@news.tiscali.it...


 ai 2 di ADO 2.8 per VB6 ?
Beh, in ADO 2.8 ti sei dimenticato di chiudere la connessione.
In ADO.Net l'uso della dataview non è indispensabile, e comunque sarebbe ora 
di cambiare modo di lavorare: il data layer dovrebbe essere a un livello 
inferiore: non puoi accedere ai dati direttamente dalla tua app, ma ti devi 
creare delle classi apposite che astraggono il problema.
Io mi sono creato una classe Connection e una Recordser che simulano il 
funzionamento dei vecchi recordset, proprio per non riscrivere un mucchio di 
codice tutte le volte.
Ciao 


Sfortunatamente 
ADO.NET
 è molto meno maneggevole di ADO.
Non si può millantare che questa perdita di maneggevolezza sia dovuta al 
fatto
che le logiche sono diverse. Perchè nessuno ha il coraggio di dire che 
Microsoft ha
peggiorato notevolmente la modalità di accesso ai dati?
ADO.NET
 è IMHO una porcata immane, e aspetto fiducioso una
inversione di tendenza da parte di Microsoft.
Tuttavia 
ADO.NET
 lo utilizzo nelle nuove applicazioni
pur non disdegnando l'utilizzo parallelo di ADO nei casi
in cui 
ADO.NET
 non mi garantisca le prestazioni di ADO.
Ciao
IAK

 peggiorato notevolmente la modalità di accesso ai dati?
La modalità non è peggiorata, ma il suo utilizzo è anche secondo me 
diventato disastrosamente complesso.
Il fatto è che ADO in realtà sotto sotto funziona in modo molto più simile a 
ADO.net, però ADO penalizza la flessibilità a favore della semplicità 
d'utilizzo.
Dubito che Microsoft migliori questa roba, anche se da quelli là bisogna 
aspettarsi di tutto (tanto per dirne una, adesso stanno mettendo da parte 
System.Windows.Forms a favore di System.Windows che non contiene più i Form, 
ma le Window... questo lo puoi già vedere nella beta di VisualStudio 2009 
http://www.microsoft.com/downloads/details.aspx?FamilyID=281fcb3d-5e79-4126-b4c0-8db6332de26e&DisplayLang=en
)
Ciao 

 ha scritto nel messaggio 
news:46262333$0$4784$4faf...@reader4.news.tin.it...



peccato che ci sia qualcosa che non quadri:
obbligare la gente a gestire i dati in modalità disconnessa secondo me è una 
follia...
Ciao

 ha scritto nel messaggio 
news:O0GVh.5562$jy5....@tornado.fastwebnet.it...



http://groups.google.it/group/microsoft.public.it.dotnet.ado/browse_thread/thread/bebb7ca65d4afbd6/0c7d5dc1e99fb3f3?lnk=st&q=ado+disconnesso&rnum=3&hl=it#0c7d5dc1e99fb3f3
-- 
---------------------------
Mauro Gamberini
http://www.riolab.org/
 

 > DataView... possibile così tanti ?

Ciao mi intrometto per una domanda: per caso vi è una limitazione nel
numero dei campi di un dataset? Con poco più di 90 campi mi viene dato
l'errore "espressione troppo complessa"....
Grazie


Diciamo che utilizzare 
ADO.NET
 per lavorare come con ADO è assurdo!!!!
A quel punto uso ADO e basta!!!!
ADO.NET
 lo uso per applicazioni web dove ha davvero poco senso utilizzare 
recordset connessi.
E' che Microsoft ha indirizzato tutto il suo interesse verso il web..e verso 
applicazioni web based...
Ciao e grazie
IAK 

 l'errore "espressione troppo complessa"....
Non è che l'errore lo da la query?
Bisogna anche cercare di capire cosa succede (e dove: qual è l'istruzione 
colpevole?)
Ciao