DBConnection y factory

09/09/2008 - 10:46 por Paul | Informe spam
Hola,

No entiendo muy bien esto del DBConnection y el factory.
Yo quiero crear una clase donde le paso un SqlConnection o
oledbConnection y el que me haga las consultas que yo quiera. Es decir
lo que no quiero es hacer dos clases una para sql y otra para OleDb,
las cuales eran identicas y lo único que cambia es sql por oledb.

Alguna idea?

Gracias

Preguntas similare

Leer las respuestas

#1 M.Genol
09/09/2008 - 13:04 | Informe spam
Pues me parece que no.
O tienes dos funciones (como dicho sea de paso hace el propio Ado .Net) o si
es la misma tienes que ir a cada paso preguntando a cual llamas.
Esto es lo que yo he tenido que hacer.
Por otra parte las funciones Ole tambien sirven para SQLServer. Dicen que
con menos rendimiento que el nativo SQL pero igual, como me pasa a mi, tus
aplicaciones no notan la diferencia.
Un saludo


"Paul" escribió en el mensaje
news:
Hola,

No entiendo muy bien esto del DBConnection y el factory.
Yo quiero crear una clase donde le paso un SqlConnection o
oledbConnection y el que me haga las consultas que yo quiera. Es decir
lo que no quiero es hacer dos clases una para sql y otra para OleDb,
las cuales eran identicas y lo único que cambia es sql por oledb.

Alguna idea?

Gracias
#2 Alberto Poblacion
09/09/2008 - 17:02 | Informe spam
"Paul" wrote in message
news:
Mostrar la cita
Puedes usar la interfaz común IDbConnection, que está implementada tanto
en SqlConnection como en OleDbConnection. Por lo tanto, si defines un método
que reciba un parámetro de tipo IDbConnection puedes llamarlo pasando
cualquiera de las dos conexiones:

private int ContarRegistros(IDbConnection cn, string tabla)
{
IDbCommand cmd = cn.CreateCommand();
cmd.CommandText = "Select Count(*) from "+tabla;
cn.Open();
int numero=(int)cmd.ExecuteScalar();
cn.Close();
return numero;
}

Lo puedes llamar asi:

SqlConnection cn1 = new SqlConnection(...);
n = ContarRegistros(cn1, "tabla1");

Y también asi:

OleDbConnection cn2 = new OleDbConnection(...);
n = ContarRegistros(cn2, "tabla1");
Ads by Google
Search Busqueda sugerida