DataSet disconnesso, aggiornamento dati del database

venerdì 03 febbraio 2012 - 19.32
Tag Elenco Tags  C#  |  .NET 4.0  |  Visual Studio 2010  |  SQL Server 2008 R2

CarryFlag Profilo | Newbie

EDIT 07/02/2012: thread spostato in sezione SQL Server in quanto mi sembra più consona

* * *

Ciao a tutti,

sto creando un'applicazione in C# (VS 2010) che interagisce con database SQL Express 2008 R2. Nel database ho creato varie stored procedure fra cui quelle di recupero dati per modifica da parte dell'utente in un oggetto DataGridView.

Per il recupero dati ed il legame con il DataGridView nessun problema: ho creato una funzione che apre la connessione al database, richiama la stored procedure relativa, popola il DataSet, chiude la connessione e (finalmente ) torna il DataSet.

public static DataSet GetLinee() { SqlConnection con = new SqlConnection(GetConnectionString()); SqlDataAdapter da = new SqlDataAdapter("GetLinee", con); DataSet ds = new DataSet(); da.SelectCommand.CommandType = CommandType.StoredProcedure; try { con.Open(); da.Fill(ds); con.Close(); } catch (SqlException ex) { System.Windows.Forms.MessageBox.Show(PreparaMessaggioErroriSQL(ex)); ds = null; } con.Dispose(); da.Dispose(); return ds; }

Ora il problema che si presenta è questo: nelle ricerche fatte, gli esempi che ho trovato creano il DataAdapter per il salvataggio utillizzando direttamente uno statement SQL (es. SELECT Colonna1, Colonna2 FROM Tabella), creando l'oggetto SqlCommandBuilder ed infine usando il metodo Update del DataAdapter. Solo che vorrei evitare di gestire statement SQL nel programma, vorrei tenere distinto l'accesso ai dati a "basso livello" dalla gestione intermedia. Inoltre, gestendo anche statement SQL dovrei sempre considerare di riportare eventuali modifiche in due punti (stored procedure nel database e statement SQL nel programma).

Ho tentato di creare il DataAdapter per il salvataggio nello stesso modo in cui genero quello di lettura, ma l'oggetto SqlCommandBuilder non è stato d'accordo al momento dei vari GetInsert/Update/DeleteCommand()

Esiste un metodo per trasferire le modifiche del DataSet al database in modo da evitare lo statement SQL? Oppure è quella la strada e devo mettere da parte le menate di voler tenere distinte le gestioni di cui parlavo prima?

Spero di aver reso l'idea e mi scuso se dovessi aver postato nella sezione non corretta.

Grazie in anticipo,
Davide.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5