Primi passi con i Dataset

lunedì 11 marzo 2013 - 17.53
Tag Elenco Tags  VB.NET  |  Windows 7  |  Visual Studio 2010  |  Crystal Reports XI

sakertorten Profilo | Newbie

Chiedo anticipatamente perdono se faccio la stessa domanda trita e ritrita, ma sento il bisogno di porre direttamente degli interrogativi per comprendere al meglio l'utilizzo del VB.net, in quanto sono alle prime armi e la documentazione a disposizione on-line è spesso frammentaria.
La mia domanda è la seguente: cosa sono i dataset? Qual'è il loro utilizzo effettivo.
Da quello che ho capito io è una sorta di DB inglobato nel programma in grado di gestire le informazioni in modo non dinamico (ossia non solo quelle passate all'avvio del programma) ma anche statico (salvandole in memoria secondaria). In pratica evita di dover interconnettere il programma ad un db nel caso si debbano salvare i dati al suo interno?

Spero che questa domanda non venga cancellata per banalità dai supervisori del forum perché in base alle risposte che mi verranno date vorrei fare altre domande, per far scaturire un dialogo, dettagliando in seguito la mia domanda.

Saluti.

pieroalampi Profilo | Expert

il dataset in poche parole rappresenta il db per in forma di memoria virtuale cioe viene popolato in base alla richiesta e poi un po come la ram viene ripulito, è composto da righe e colonne quindi da una tabella e ogni riga e colonna hanno delle variabili e quindi un insieme di valori assegnati ti riporto qui sotto un esempio di codice dove il dataset viene utilizzato per popolare una datagridview dove esiste anche la formattazione del datagrid:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
ovviamente poi si può continuare e parlare dei dataset tanto ma l'importante è che capisci come funziona e cominci a provare qui una guida
http://msdn.microsoft.com/it-it/library/8bw9ksd6.aspx

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

sakertorten Profilo | Newbie

Grazie per quelle righe di codice sono molto intuitive e mi hanno aiutato a capire meglio il mondo VB.net.

Una cosa non mi è chiara, il significato dell'elemento SqlDataAdapter, in particolare vorrei delucidazioni sulla chiamata fill.

Dim tablename2 As String = "TB_Commessa "
da.Fill(dataset1, tablename2)

In pratica comando il programma di inserire una tabella chiamata TB_commessa come risultato del comando select precedente?


Grazie Anticipatamente

pieroalampi Profilo | Expert

SqlDataAdapter e dataset allo stesso modo servono per combinare la comunicazione e la manipolazione dei dati con sql server quando si effettuano delle operazioni insert e select e ......
da.Fill(dataset1, tablename2): qui fai Dim da As New SqlDataAdapter quindi dichiari un SqlDataAdapter che appartiene allo spazio dei nomi sqlclient, quindi in testa al codice va inserito Imports System.Data.SqlClient "prima della dichiarazione della classe del form cioe esempio:Public Class Form1" a meno che tu ogni volta che dichiari un SqlDataAdapter non voglia inserire lo spazio dei nomi, in poche parole è una comodità fare l'import.
Il fill come dice qui "http://msdn.microsoft.com/it-it/library/zxkb3c3d.aspx" è il metodo recupera i dati da un'origine dati mediante un'istruzione SELECT, la tabella come dici tu è quella di riferimento!


--------------------------------------------------------------------------------





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

sakertorten Profilo | Newbie

Ok il concetto mi è abbastanza chiaro, infatti finché lavoro con i dataset creati da codice partendo da una query sql (come nel caso da te presentato) le cose vanno abbastanza bene, è tutto molto semplice.
Mi si incasinano molto le cose quando devo lavorare con un report che visualizza i dati di una singola tupla di una tabella.
Caso pratico che devo gestire: Ho una tabella in un DB access con i dati degli iscritti ad un comitato di quartiere e devo creare un report che riporti i dati di un solo utente iscritto (una tupla a mia scelta).

Nei report creati con il wizard devo sempre inserire un dataset salvato all'interno del progetto che prende automaticamente i campi da un DB, ma cosi facendo non riesco a scegliere la tupla che mi interessa, ossia quale utente visualizzare.
Io invece vorrei da codice eseguire una query sql (in modo analogo a quello da te descritto) e popolare il report come fosse una form.Che tu sappia è possibile?

Spero di non rubarti troppo tempo con tutte queste domande.

Saluti

pieroalampi Profilo | Expert

non ho capito bene ma mi sembra di aver capito che devie tirare fuori dati da due tabelle giusto??? se è cosi devi fare una inner join
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

sakertorten Profilo | Newbie

Ciao,
no la tabella è una sola, ed ora il problema non è più quello di comprendere i dataset,grazie alle tue risposte con quelli ci sono.


Il problema è modificare i valori dei campi di un report sviluppato con Visual Studio 2010 (non con crystal report ma con la versione ufficiale di Visual studio) da codice VB.net.

Prendo un caso semplice e indipendente dalle tabelle.
Ipotiziamo di avere un programma che chiede ad un utente dei dati (nome cognome numero di telefono ecc..) e ne esporti un report contenente questi dati secondo una formattazione definita in precedenza.
Per farlo creo una form con vari campi da riempire (i dati appunto) e un pulsante invia.
Quando viene cliccato il pulsante, il programma prende i dati dalla form e popola il report che poi restituisce all'utente.
Quello che non riesco a fare in VB.net è questa fase di popolamente delle textarea di un report manualmente e non in modo automatico con una querysql definita direttamente nel report.

Una volta risolto questo problema quello che farò nella realtà sarà andare a prendere i dati da un DB Mysql e metterli nel report, manualmente da codice.

Ho sconfinato in argomenti esterni dall'argomento principale della discussione quindi se non te ne intendi non importa, apro un altra discussione.

Saluti

pieroalampi Profilo | Expert

ho avuto anche io lo stesso problema, fra le cose risolto ma non ricordo come feci ricordo solo che scrissi del codice e alla fine andò bene, ti conviene aprire un altro post e chiudere questo come risolto io do un occhiata in giro nei mie vecchi project e vedo un po cosa posso fare la cosa che mi lasciò perplesso è che ogni volta che cambiamo versione di vs bisogna stare appesi ed aspettare che cr ci dia una mano per esempio per le versione 2012 le cose sono cambiate ancora e se non sbaglio non è unscita da molto la versione cr per vs 2012
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA

sakertorten Profilo | Newbie

Grazie mille. aprirò un altro post sta sera

Saluti

pieroalampi Profilo | Expert

ok
ciao
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5