Newsgroup: it.comp.lang.visual-basic
Titolo: [NET] DataAdapter, DataSet e DataView

Ciao a tutti, sto iniziando a programmare con Visual Basic .NET e Ado
.NET ma non mi è tanto chiaro l'utilizzo di DataAdapter, DataSet e
DataView.
Nel mio programma per il momento ho la necessità di:
popolare combo -->  utilizzo il DataReader con l'istruzione
combo.items.add .... ho provato con il DataSet e la proprietà
Datasource ma ho notevoli problemi con la gestione degli eventi
SelectedIndexChanged. In base alla scelta effettuata in una combo devo
popolare una seconda combo, mentre popolavo la prima veniva eseguito
il codice presente in SelectedIndexChanged e quando nella seconda
combo ho provato ad usare ExecuteScalar non ha più funzionato niente.
popolare griglie --> cosa posso utilizzare? Ho provato con dataset ma
mi appare all'interno della griglia una sorta di esplora risorse,
posso navigare fino a visualizzare le colonne...
effettuare dei controlli nel database --> io per il momento uso dei
DataReader, se datareader.read non da risultati inserisco i dati
altrimenti aggiorno...
Quindi quando mi serve il dataset, il dataview etc... ?
Se qualcuno sapesse anche indicarmi un sito dove posso trovare una
spiegazione chiara con degli esempi gli sarei molto grata.
Ne approfitto per chiedere anche un consiglio. La mia applicazione
legge da un file .ini, per il momento ho una classe che passati i
parametri utilizza GetPrivateProfileString per leggere i dati... ma
non posso tutte le volte usare la classe non conviene farlo una volta
sola e assegnare i valori a variabili dichiarate public in un modulo?
Grazie in anticipo a tutti e buon lavoro!
Ciao
Giulia

 Giulia
Salve
giuseppeD

Aggiungo solamente che se vuoi continuare ad utilizzare i files .INI (anche
se la soluzione XML č senz'altro raccomandabile) puoi create una classe con
metodi statici che sostituisce a tutt gli effetti un modulo in 
VB.NET
 (ed č
quello che il compilatore faunder the hood)
HTH
-- 
Corrado Cavalli [Microsoft MVP]
UGIdotNET - 
http://www.ugidotnet.org

 Giulia
.A
UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org

Ciao a tutti, grazie per le risposte...
Allora per quanto riguarda le combo ho risolto nel seguente modo...
ho creato di Command e un DataReader e poi ho popolato sia combo1 che
combo2 (quest'ultima nell'evento ) usando il seguente codice:
combo1.BeginUpdate()
While DrEnti.Read
   combo1.Items.Add(DrEnti("DENOMINAZIONE"))
End While
combo1.EndUpdate()
se utilizzo il dataset e la proprietà datasource della combo mi crea i
problemi di n popolamenti. Ho provato a usare la proprietà valuemember
ma mi da il seguente problema
se imposto 
displaymember = "descrizione"
valuemember="codice"
nella combo mi viene visualizzato il codice e non la descrizione
invece io mi aspettavo che nella combo comparisse il codice mentre al
valuemember potevo accedere quando l'utente selezionava una voce...
Per l'ini non capisco una cosa, se io dichiaro variabili di tipo
static cmq non risolvo il problema. Vi posto la mia classe così forse
è più chiaro
Private sVoceINI As String
Private sCategoriaINI As String
Declare Function GetPrivateProfileString Lib "kernel32.DLL" Alias
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString
As String, ByVal nSize As Integer, ByVal lpFileName As String) As
Integer
Public Property VoceINI() As String
   con Set imposto la Voce che voglio reperire (sVoceINI)
End Property
Public Property CategoriaINI() As String
   con Set imposto la categoria (sCategoriaINI)
End Property
Public Function ValoreINI() As String
   Dim szBuf As String
   Dim ret As Integer
   szBuf = Space(255)
   szBuf = Replace(szBuf, " ", "0")
   ret = GetPrivateProfileString(sCategoriaINI, sVoceINI, "", szBuf,
Len(szBuf), "OpenTerritorio.ini")
    If ret = 0 Then
      ValoreINI = ""
    Else
      ValoreINI = Left(szBuf, ret)
    End If
end Function
Ogni volta che mi serve una variabile assegno Voce e Categoria e poi
richiamo la funzione ValoreINI. Quindi direi che è un lavorone è vero
che non devo aggiungere ogni volta una lettura se aggiungo una voce
nell'ini però cmq devo tutte le volte richiamare le funzioni. Quando
usavo il modulo globale leggevo l'INI una volta e assegnavo le voci a
variabili globali però mi è stato sconsigliata questa strada....
Cosa mi consigliate di fare? Mi potete mandare un esempio?
Grazie ancora....
Ciao a tutti
Giulia

 Dim caricatoCombo As Byte = 0
curiosità: dove vai a dire che il combo è stato caricato?
ti spiego: ho incontrato la tua stessa difficoltà, e avevo brillantemente
cercato di risolverla ritardando l'associazione evento-funzione.
Sostanzialmente prima assegnavo i valori per il binding del combo, poi usavo
l'addhandler per gestire l'evento. Solo che anche in questo modo mi beccavo
due selecteditemchanged "spuri". Se tu sei riuscito a trovare il "posto"
giusto per valorizzare la variabile di controllo, basta sostituire
all'assegnazione l'addhandler, e forse otteniamo una soluzione "elegante"
--
Salutoni
Sergio

 all'assegnazione l'addhandler, e forse otteniamo una soluzione "elegante"
ciao Sergio... io sono alle prime armi mi puoi spiegare come hai
fatto, magari con un po' di codice di esempio...
io comunque molto più terra a terra per popolare la combo uso additem
come vedi dalla mia risposta....
ciao e grazie

 come vedi dalla mia risposta....
e come potrai vedere dalle risposte che abbiamo dato, anche io e giuseppe,
nellafase attuale, siamo costretti ad utilizzare quel metodo, perchč il
caricamento dei dati con il data binding produce degli indesiderati ed impropri
eventi "SelectedItemChanged"
--
Salutoni
Sergio