>Ora, vorrei creare un oggetto solo che possa essere accessibile
>a tutte le classi o altrimenti mettere la classe a STATICA, ma
>la connessione non posso più crearla nel costruttore a quel punto
>ma esternamente, cosa che mi intralcia quando uso i Command e
>i DataReader...
No infatti, in genere si definisce la classe come abstract (non instanziabile) e i metodi interni come static.
In questo modo puoi richiamarli in questo modo da codice:
NomeClasse.NomeMetodo(Parametri);
A questo punto puoi anche creare dei metodi che accettino in input un SqlCommand o una query semplice e restituiscano dei DataSet.
Esempio:
public static DataSet GetData(string query)
{
}
oppure
public static DataSet GetData(SqlCommand cmd)
{
}
così dal tuo codice esterno potrai usare brevemente:
DataSet ds=new DataSet();
ds=NomeClasse.GetData("SELECT * FROM Tabella");
e poi operi sul DataSet.
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/