ragazzi sono sempre io che cerco di capire come fare un gran bel lavori da un punto di vista dell'eleganza...
allora ho pensato di creare una dll contenente delle funzioni per gestire le interazioni con il database secondo voi è possibile ?
vorrei inserire delle function che gestiscono le query SELECT INSERT e UPDATE

mi fate un esempio concreto per cortesia ?
secondo voi è valida come soluzione?

GustoInRete La Rete del Gusto
Immobili360 Annunci Immobiliari
Si è valida, sicuramente meglio che mettere le query nella pagina aspx.
Bisogna però valutare i costi di usare questo approccio.
Metti che hai una tabella di prodotti. Puoi fare una classe

public class Prodotto
{
public int idProdotto;
....
}

Per rappresentare il singolo prodotto e fare una classe GestioneProdotti o la classe Prodotto stessa, con metodi statici per fare Update Insert e delete, es:

public static Prodotto GetProdotto(int idProdotto)
{
// chiamata alla sp
Prodotto o = new Prodotto()
p.idProdotto = readersp["idProdotto"]..
}

Una cosa del genere. Che con whidbey si farà ancora più in fretta

Ciao

Il mio blog
Homepage
non capisco il tuo metodo sinceramente scusa non posso passare la stringa e cosi facendo lavorare con i 3 tipi di query SELECT UPDATE INSERT ?

tu dici di creare una classe per ciascuna tabella ?
se è cosi diventerebbe un problema gestire query su più tabelle !!!



whidbey che è ????

GustoInRete La Rete del Gusto
Immobili360 Annunci Immobiliari
L'approccio che ti consiglio io è, niente query sql nella classe, solo richiamo alle sp che fanno tutto. Quello che fai nelle classi è avere i vari metodi che fanno da ponte tra la classe che rappresenta il prodotto e il db sql. Il GetProdotto che t'ho proposto, serve per fare la select del singolo record. Farai un altro metodo che fa l'update, un altro per add, list e delete.

Whidbey è la prossima release di asp.net
http://www.aspitalia.com/articoli/whidbey/alpha1.aspx

Ciao

Il mio blog
Homepage
non capisco sinceramente
io volevo fare una classe con le funzioni fondamentali per effettuare le query e passare le stringhe query vere e proprie come parametro !
mi puoi fare un esempio un po' più chiaro??
ti prego non mi insultare!!

GustoInRete La Rete del Gusto
Immobili360 Annunci Immobiliari
Non mi sembra un gran vantaggio fare delle classi alla quale passare la query, risparmi 3 righe per aprire la connessione ed eseguirla.
La mia proposta era di fare le classi che hanno già i metodi che eseguono le query e ti danno un dataset se è una lista, o l'id del record (se ti serve, se fai un insert) o l'oggeto Prodotto se fai una get.

Ciao

Il mio blog
Homepage
Allora:
hai una bella di prodotti:
id
Nome

Fai una classe che la rappresenta

public class Prodotto
{
public int Id;
public string Nome;
}

Ora in questa classe metti i metodi per fare, list, get, insert, update e delete:

public class Prodotto
{
...
public static DataSet ListProdotti()
{
SqlConnection con = new SqlConnection(...);
// meglio ancora se è una stored procedure
SqlDataAdapter cmd = new SqlDataAdapter ("select * from prodotti", con);
DataSet ds = new DataSet();
cmd.Fill(ds);
return ds;
}

public static Prodotto GetProdotto (int id)
{
SqlConnection con = new SqlConnection(...);
SqlCommand cmd = new SqlCommand("select * from prodotti WHERE id = " + this.Id "', con);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Prodotto p = new Prodotto();
p.Id = id;
p.Nome = (string)reader["nome"];
}
else
return null;
}

public void Update()
{
SqlConnection con = new SqlConnection(...);
SqlCommand cmd = new SqlCommand("update prodotti set nome = '" + this.Nome + "' WHERE id = " + this.Id "', con);
cmd.ExecuteNonQuery();
}

ecc

Con lo stesso principio fai anche il delete ecc. Il codice è uno schizzo, non copiarlo così eh
Così dalla tua pagina aspx, farai
datagrid1.DataSource = Prodotto.ListProdotti();

Se vuoi avere un singolo prodotto farai (es id = 1)
Prodotto p = Prodotto.GetProdotto(1);

lo potrai modificare
p.Nome = "ciao";
e aggiornare
p.Update();

Più chiaro di così

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.