PDA

View Full Version : [C#] Accesso ai dati


Dandd87
25-04-2010, 15:42
Ciao a tutti, mi sono bloccato su un problemino che spero mi aiuterete a risolvere:

In sostanza sto lavorando ad un applicativo WinForm per la gestione degli ordini di merci varie.
Mi blocco sull'accesso ai dati:
Ho creato il database con 5 tabelle e ora vorrei (per es) creare una form per l'inserimento di un nuovo ordine nel DB.
Da quello che ho capito devo prima creare il dataset relativo al database (fatto) e poi la mia idea era quella di associare i controlli del form (textbox, listbox..) ai vari campi della tabella interessata..mi spiego meglio:

Nel DB la tabella ordini si compone tra gli altri dei seguenti campi:
-ordineID
-Dataordine
-FornitoreID
-ImpiegatoID
...

Io nel form ho creato i relativi controlli che vorrei associare ai rispettivi campi.
Come faccio a:

1)fare in modo che l'utente possa scegliere, ad es nel controllo del fornitoreID, il nome effettivo del fornitore (che risiede su una tabella tblFornitori) ma poi che al momento dell'inserimento del nuovo record sia memorizzato il suo id.

2)Effettuare l'inserimento del nuovo ordine su pressione del pulsante.

Se ho intuito bene bisogna lavorare con i controlli BindingSource e Dataset ma la cosa non mi è per nulla chiara...

Sperando di essere stato chiaro vi ringrazio in anticipo! :)

MarcoGG
26-04-2010, 08:57
...
Da quello che ho capito devo prima creare il dataset relativo al database (fatto) e poi la mia idea era quella di associare i controlli del form (textbox, listbox..) ai vari campi della tabella interessata...
...
Se ho intuito bene bisogna lavorare con i controlli BindingSource e Dataset ma la cosa non mi è per nulla chiara...
...


Se sei abbastanza in start-up con .NET ti consiglierei di NO.
Per fare una Insert non serve affatto un DataSet, basta che usi un Command + Named Parameters del provider di dati adatto al tuo DB.
Iniziare ad usare BindingSource & compagnia fin da subito secondo me è controproducente, soprattutto se sei all'inizio...

Dandd87
26-04-2010, 14:51
Ciao e grazie della risposta.

Intendi dire utilizzare chiamate a stored procedure? Preparo i controlli e assegno magari ad un Button la chiamata alla procedura passando come parametri i valori inseriti dall'utente?

MarcoGG
26-04-2010, 17:24
Ciao e grazie della risposta.

Intendi dire utilizzare chiamate a stored procedure? Preparo i controlli e assegno magari ad un Button la chiamata alla procedura passando come parametri i valori inseriti dall'utente?

No, vedo che parecchi utenti scambiano i Named Parameters con l'obbligo di usare Stored Procedures. Sono due cose distinte. Puoi fare una Insert direttamente nel tuo DB, solo cerca di NON usare MAI quel sistema orrendo di concatenazione diretta fra comandi Sql e valori. Ti espone ad un mucchio di problemi. Poi dipende dal livello di accesso e di sicurezza che vuoi dare al DB. Sicuramente, come regola generale, è meglio avere Stored Procedures piuttosto che tabelle da interrogare direttamente.