Foros del Web » Programación para mayores de 30 ;) » .NET »

Crear una clase para la conexion a la BD en access

Estas en el tema de Crear una clase para la conexion a la BD en access en el foro de .NET en Foros del Web. Hola, alguien me puede explicar como hago una clase donde defino la conexion a la base de datos en access. Y como hago para utilizarla ...
  #1 (permalink)  
Antiguo 03/12/2003, 10:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Crear una clase para la conexion a la BD en access

Hola, alguien me puede explicar como hago una clase donde defino la conexion a la base de datos en access. Y como hago para utilizarla dentro de mi proyecto. Todo esto esta en asp .net.
Gracias de antemano
Paola
  #2 (permalink)  
Antiguo 03/12/2003, 12:16
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola paolam

Lo que dices sería algo como:

------------------------------------------------------------------------------

Class AccessCon

Public Function AccessCnx() as String

return "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source="&Server.MapPath("\miespacio\db\nombreBD.md b")&";"

End Function

End Class

--------------------------------------------------------------------------------


Luego con el vbc compilas el fichero como "AccessCon.dll" y lo introduces en la carpeta /bin de la aplicación. Luego, cuando necesites hacer una conexión con la base de datos ya puedes escribir algo como:

cnx = new OleDbConnection(AccessCnx())

Ventajas: si cambias la cadena de conexión con la base de datos recompilas la clase AccessCon y no necesitas hacer nada más
Espero que te sirva de ayuda

Última edición por lucxx; 03/12/2003 a las 12:26
  #3 (permalink)  
Antiguo 03/12/2003, 12:24
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Nota:

Por si no me he explicado bien:

- Creas un fichero AccessCon.vb (o el nombre que prefieras
para la clase)

- Metes el código indicado arriba con la ruta correspondiente
a tu base de datos

- Te creas un fichero CompilarAccessCon.bat que contenga:
vbc /t:library AccessCon.vb
pause

(aquí podrías especificar que la salida, es decir, el .dll se
escribiera directamente en la capeta bin de la aplicación)

- [introduces el fichero .dll resultante en la carpeta /bin de la
aplicación]

y despues de esto debería funcionar...
  #4 (permalink)  
Antiguo 03/12/2003, 13:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Tambien otra cosa que puedes hacer (que es lo mas usual ) es poner dentro de tu archivo web.config un valor y asignas la cadena de conexion.

Ejemplo.

web.config
Cita:
<configuration>

<appSettings>
...
..
<add key="connectionString " value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\tu_ruta\mibase.mdb" />
...
Y ya en cualquier pagina que tengas (aspx) le das un imports a System.Configuration para accesar al valor que tiene en tu web config.

y harías por ejemplo algo como ésto:

Cita:
Dim oConn As New System.Data.OleDb.OleDbConnection(ConfigurationSet tings.AppSettings("connectionstring "))
Y con ello accesas a tu string connection y es una manera elegante y bastante funcional

Saludos y suerte
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 04/12/2003, 11:34
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno, la clase sirve por si no conoces la ruta de acceso local a tu base de datos, que a veces se da el caso
  #6 (permalink)  
Antiguo 04/12/2003, 15:29
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
la clase sirve por si no conoces la ruta de acceso local
Estoy de acuerdo, aunque en esos casos podrías hacer.

web.config

Cita:
<add key="connectionString " value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
archivo.aspx

Cita:
Dim oConn As New System.Data.OleDb.OleDbConnection(ConfigurationSet tings.AppSettings("connectionstring ") &
Server.MapPath("\miespacio\db\nombreBD.mdb"

ó mas elegante

dim strConn as String = ConfigurationSettings.AppSettings("connectionstrin g") & Server.MapPath"\miespacio\db\nombreBD.mdb"

Dim oConn As New System.Data.OleDb.OleDbConnection(strConn)

Saludos
  #7 (permalink)  
Antiguo 05/12/2003, 12:13
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
y que sentido tendría eso ultimo???

lo de meterlo en una clase yo lo veo porque si por lo que sea cambias la ubicación de la base de datos, o el nombre, o lo que sea, solo tienes que modificar un fichero (el de la clase que contiene la función AccessCnx(), ya que cada vez que creas una conexion llamas a esa funcion y esta te devuelve la ruta). si escribes la ruta en todos los sitios donde necesitas hacer una conexión, como tengas que hacer una modificación de las expuestas anteriormente (cambio de ubicación de la bd, cambio de nombre...) te tocaría hacer esa modificación muchas veces

vamos, luego que cada cual haga lo que le parezca, pero...

PD: por cierto, que lo de la clase a mi me parece mu elegante tb

Saludos!
  #8 (permalink)  
Antiguo 05/12/2003, 13:26
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
te tocaría hacer esa modificación muchas veces
Bueno friend., se que harías muchas veces esa modificacion.. pero lo puse como "Ejemplo" mas no quiere decir que es una excelente manera de hacerlo... lo quer trato es de exponer las diferentes formas que se puede hacer y ya uno como desarrollador decidirá cual es la mas conveniente de acuedo a sus necesidades.

Y no por eso quiero decir que hacer una clase es una manera poco elegante, o hacerlo desde el web.config.. etc.

Solo es un comentario espero no lo tomes a mal
  #9 (permalink)  
Antiguo 05/12/2003, 13:40
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno, bueno, jaja, no creo que me lo tome a mal

Hay que desarrollar el sentido del humor

http://www.forosdelweb.com/s231c95c6...msg167698.html

  #10 (permalink)  
Antiguo 05/12/2003, 14:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
, está genial esa page (pero no precisamente porque está bien hecha.. .)... me quedé sin palabras
  #11 (permalink)  
Antiguo 05/12/2003, 14:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 6 meses
Puntos: 0
Sonrisa

Gracias a todos por la respuesta, me ayudo muchisimo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:20.