DataSet multitabelle. Ed i Command?

venerdì 18 settembre 2009 - 10.40

giopla Profilo | Newbie

Salve a tutti,
lavoro da anni coi db SQL Server e, a livello di programmazione, mi sono fermato al vecchio caro VB6.
Adesso, per non essere lasciato indietro dal progresso (mio figlio di 14 anni già dice che sono antiquato), sto cominciando ad entrare nel mondo .NET tramite ADO e C#.
Ora, io mi aspettavo di trovare un mondo di gran lunga migliorato rispetto alle vecchie strutture ADO 2.5 o 3.5. In realtà i miglioramenti sembra siano arrivati soltanto dal punto di vista delle prestazioni, ma non mi pare (almeno per quello che ho visto finora) della semplicità.
In questo momento mi sto imbattendo in un problema forse più concettuale che pratico, ma credo che, forse, qualcuno ha già affrontato anche perchè non mi sembra una cosa così "lunare":
Se ho un Dataset, ed ad esso associo un DataAdapter, e tramite esso, mappo in memoria, non una, ma diverse tabelle del mio db, come faccio, in maniera cristiana e non "ostrogota", ogni qualvolta devo aggiornare il db sorgente, ad utilizzare i vari InsertCommand, UpdateCommand e DeleteCommand appositi se, appunto le tabelle sono tante ed i command da associare al DataAdapter sono unici?
Scusate se la domanda vi dovesse suonare stupida e magari la risposta è scontata, ma, ripeto, sto cominciando a studiare l'argomento da pochissimo.

Grazie!

Teech Profilo | Expert

Ogni DataAdapter ha un solo UpdateCOmmand, un solo InsertCommand ed un Solo DeleteCommand, ma ha anche un solo SelectCommand.
Da questo ipotizzo che sostituisci il SelectCommand di volta in volta per popolare diversi DataTable se usi un solo DataAdapter.
Ora, le strade sono 2 per risolvere il tuo problema: la prima, più complicata e secondo me errata, è sostituire i command in base alla tabella così come stai facendo per la SelectCommand nello stesso DataAdapter, mentre la seconda è gestire un DataAdapter per ogni DataTable implementando le logiche che più ti aggradano.
Se ci fai caso, quando esegui il metodo Adapter.Fill(Dataset) viene generato un DatatTable all'interno del Dataset e quindi "la relazione" è fra DataAdapter e DataTable.

Spero di essere stato chiaro e esserti stato di aiuto.
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

giopla Profilo | Newbie

Sei stato chiarissimo ed esaustivo, Teech.

Penso che comincerò a sperimentare varie soluzioni, anche perchè è mia consuetudine adottare un modello di programmazione 3-layer, per cui vorrei vedere anche come si possono ottimizzare le prestazioni... Farò uso del tuo suggerimento, grazie!
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5