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

crear variable de conexion global

Estas en el tema de crear variable de conexion global en el foro de .NET en Foros del Web. hola amigos, una consulta, como puedo crear una variable de conexion global de modo que pueda llamarlo cada vez que necesite y no tener que ...
  #1 (permalink)  
Antiguo 08/12/2012, 09:39
Avatar de chelochos  
Fecha de Ingreso: septiembre-2011
Ubicación: Aregua
Mensajes: 27
Antigüedad: 12 años, 7 meses
Puntos: 0
crear variable de conexion global

hola amigos, una consulta, como puedo crear una variable de conexion global
de modo que pueda llamarlo cada vez que necesite y no tener que cambiar cada form para la conexion.
estoy usando vb.net windows form con sql server 2000.
les comento como hacia:

en un modulo declaraba una variable global de tipo string
modulo x
dim sqlconexion as string = "server =CESAR-ADE020761;database = SGCV V1.01; user id ='" & usuario_ & "'; password ='" & contrasena_ & "'"
end modulo

pero en mi formulario cuando llamaba a esta cadena
me salta un error que dice:
"Error de inicio de sesion(null):Motivo no esta asociado a una conexion de sql server de confianza"

Dim conexion As SqlConnection = New SqlConnection
conexion.ConnectionString = sqlconexion
conexion.Open()

en cambio cuando uso de esta forma no me crea problemas, solo que tengo que ponerlo en todos los form para que no me de errores.

Dim conexion As SqlConnection = New SqlConnection
'conexion.ConnectionString = "server =CESAR-ADE020761;database = SGCV V1.01; user id ='" & usuario_ & "'; password ='" & contrasena_ & "'"
conexion.Open()

...y para evitar hacer eso, que solucion se puede dar??
agradeceria sus comentarios..
saludos
  #2 (permalink)  
Antiguo 08/12/2012, 10:00
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: crear variable de conexion global

Realente la mejor forma es la primera, ya habria que mirar que tienes mal, que te esta marcando error.

Yo lo hago asi:

1. La cadena de conexion la tengo en un archivo de configuracion
2. Al cargar la aplicacion leo la cadena y la asigno a una variable global. Esta variable esta en una clase Publica (Public Class) y a su vez la clase tambien tiene una Propiedad Publica por ejemplo MiConexionString

Entonces cuando necesito recuperar la cadena hago algo como

Código VB:
Ver original
  1. Dim conexion As SqlConnection = New SqlConnection
  2. conexion.ConnectionString = MiClase.MiConexionString
  3. conexion.Open()

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 08/12/2012, 10:41
BalamKhai
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: crear variable de conexion global

Para que la variable String con la cadena de conexión sea global, debes declararla como:

Public Shared no como Dim

y al utilizarla, debes llamarla junto con la clase donde se encuentra:

miclase.variableglobal

espero te sirva,
saludos.
  #4 (permalink)  
Antiguo 11/12/2012, 21:02
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 1 mes
Puntos: 61
Respuesta: crear variable de conexion global

Hola.

La mejor forma seria que pongas la cadena de conexión en el archivo de configuración(app.config) y cuando hagas query a la bd utilices los bloques using para recuperar la cadena de conexión.

Código vb.net:
Ver original
  1. Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString())
  2. conn.Open()
  3. End Using

Esa seria la mejor forma sin necesidad de usar variables globales solo usas los bloques usign para leer la cadena de conexion del app.config y el mismo bloque te cierra la conexion.

Saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Etiquetas: conexion, global, net, server, sql, vb, windows, variables
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 17:28.