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
Respuesta Responder a este mensaje
#2 Alberto Poblacion
09/09/2008 - 17:02 | Informe spam
"Paul" wrote in message
news:
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.



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");
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida