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

Clase estatica

Estas en el tema de Clase estatica en el foro de .NET en Foros del Web. Os comento, he hecho una clase estatica Conexion(siguiendo el consejo de un compañero de este foro), en ella lo que recogo es la ruta de ...
  #1 (permalink)  
Antiguo 09/06/2006, 11:57
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Clase estatica

Os comento, he hecho una clase estatica Conexion(siguiendo el consejo de un compañero de este foro), en ella lo que recogo es la ruta de conexion con la BD desde un fichero, el problema es que tengo una varibale publica en la clase, y se guarda la cadena en ella, pero ahora no recuerdo como llamarla desde otra clase, todo esto lo he hecho para "hacer una vble global"

Os pongo la clase por si os sirve

using System;
using System.IO;
using System.Collections;

namespace Conectar
{
/// <summary>
/// Descripción breve de Conexion.
/// </summary>
public static class Conexion
{
public static String conexion;

public Conexion()
{
}//constructor

public static String obtenerConexion()
{
string path=Directory.GetCurrentDirectory();
string slinea=cadenaConexion(path);
slinea=slinea+"ruta.txt";
StreamReader archivo=new StreamReader(slinea);
slinea="";
ArrayList aObj=new ArrayList();
while (slinea != null)
{
slinea = archivo.ReadLine();
if(slinea != null)
aObj.Add(slinea);
}
archivo.Close();
slinea=aObj[0].ToString();
conexion=slinea;
return(conexion);
}//obtenerConexion

private static String cadenaConexion(string cadena)
{
string path="";
int i=0;

while(cadena.Substring(i,3)!="bin")
{
path=path+cadena.Substring(i,1);
i++;
}//while
return(path);

}//cadenaConexion

}//class
}
  #2 (permalink)  
Antiguo 09/06/2006, 12:23
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
, no quiero pensar que haces todo ese código para obtener la cadena de conexion...

o cual es la finalidad de ese code..??

Si quieres obtener la cadena de conexion de todo tu sitio o aplicacion lo puedes hacer guardando en

web forms = web.config
win forms = app.config

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 10/06/2006, 12:49
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
pues si todo ese código es para la cadena de conexion con la BD que segun me obligan debe estar en un fichero txt,por otra parte lo q quiero hacer es que cuando me lee la cadena y me la guarda en la vble de la clase, cuando la recupero no me de como valor null
  #4 (permalink)  
Antiguo 10/06/2006, 16:16
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Cita:
Iniciado por kakarot
pues si todo ese código es para la cadena de conexion con la BD que segun me obligan debe estar en un fichero txt,por otra parte lo q quiero hacer es que cuando me lee la cadena y me la guarda en la vble de la clase, cuando la recupero no me de como valor null
, y quién te obliga a hacer eso? no has pensado en proponer una solución más ideal?.

En cuanto a tu problema, si de todos modos deseas hacerlo como muestras, sería mejor que envíes la estructura del archivo que estás leyendo.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 11/06/2006, 09:04
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
xknow, pues de obligarme hacerlo con esas funciones no me obliga nadie, simplemente q debo leerlo de un txt, en este solo hay una linea....

El problema como te he comentado es q me lo lee bien, pero despues no se como hacerlo de tal forma que esto se quede guardado en una "vble global"

Saludos
  #6 (permalink)  
Antiguo 12/06/2006, 01:10
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Cita:
Iniciado por xknown
, y quién te obliga a hacer eso? no has pensado en proponer una solución más ideal?.

En cuanto a tu problema, si de todos modos deseas hacerlo como muestras, sería mejor que envíes la estructura del archivo que estás leyendo.

Saludos
Pues es un txt que solo contiene:
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Telematica;Data Source=UP672291

Saludos
  #7 (permalink)  
Antiguo 12/06/2006, 02:00
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Bueno uno que es cabezon, pero al final lo he conseguido, me ha quedado:

using System;
using System.IO;
using System.Collections;

namespace Conectar
{
/// <summary>
/// Descripción breve de Conexion.
/// </summary>
public class Conexion
{
private static string conexion;

public Conexion()
{
}//constructor

public string obtenerConexion()
{
string path=Directory.GetCurrentDirectory();
string slinea=cadenaConexion(path);
slinea=slinea+"ruta.txt";
StreamReader archivo=new StreamReader(slinea);
slinea="";
ArrayList aObj=new ArrayList();
while (slinea != null)
{
slinea = archivo.ReadLine();
if(slinea != null)
aObj.Add(slinea);
}
archivo.Close();
slinea=aObj[0].ToString();
return(slinea);
}//obtenerConexion

private string cadenaConexion(string cadena)
{
string path="";
int i=0;

while(cadena.Substring(i,3)!="bin")
{
path=path+cadena.Substring(i,1);
i++;
}//while
return(path);

}//cadenaConexion

public string PrConexion
{
get
{
return conexion;
}
set
{
conexion = value;
}
}

}//class
}

Ya se que será una barbaridad pero de momento funciona :D
  #8 (permalink)  
Antiguo 12/06/2006, 08:35
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
te recomendaría guardar tu cadena de conexion en los archivos de configuracion de la aplicacion (web.config or app.config) porque la forma en que lo estas haciendo no es nada correcta y demasiado engorrosa, pero bueno, es solo una sugerencia ya cada uno decide como entregar las aplicaciones.
  #9 (permalink)  
Antiguo 12/06/2006, 10:02
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Por mi parte, si tuviera que sacrificar mi aplicación de forma que cada vez que requiere de una conexión tuviera que hacer todo eso, me plantearía ponerle una opcion de "Cargar Cadena de Conexion", que me lea el TXT y lo que haga falta, y me lo meta en mi archivo de configuración. Luego todo seguiría su curso...
Saludos.
__________________
..:: moNTeZIon ::..
  #10 (permalink)  
Antiguo 13/06/2006, 01:54
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Es muy posible que tengais razon, pero lo estuve itentando de esa forma y no me ha salido, por lo que de momento he tenido que "parchearla" de esa forma, y mirando por un lado, todo ese código lo hace una sola vez en todo el aplicativo., aunque si me dais alguna orientación de hacerlo de otra la otra forma yo encantado.

Saludos y gracias
  #11 (permalink)  
Antiguo 13/06/2006, 02:24
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Como te comenté, si esa linea de conexión no va a cambiar mucho, no vale la pena leer siempre el TXT y todo eso. Averiguas la forma de poder escribir y modificar el archivo de configuracion (que la hay) y te curras una opción para "Cargar Cadena de Conexion", te pide el TXT, lo lees, grabas el dato en el fichero de configuracion, y nada más.
Tu aplicación trabaja con la cadena que hay en el ficheroi de config. Si deja de funcionar porque te cambian la cadena de conexion ( esto ocurre muy a menudo? ), pues nada, la cargas de nuevo con la nueva opcion.
Es una idea.
Saludos.
__________________
..:: moNTeZIon ::..
  #12 (permalink)  
Antiguo 13/06/2006, 06:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Pues ya buscaré por algun sito aver si sale :D
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 12:37.