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

Variables Globales en C#

Estas en el tema de Variables Globales en C# en el foro de .NET en Foros del Web. Hola, Tengo una clase principal donde se ejecuta el programa y una clase para la gestión de la bd. En la clase de gestión de ...
  #1 (permalink)  
Antiguo 04/12/2007, 16:50
 
Fecha de Ingreso: febrero-2002
Mensajes: 58
Antigüedad: 22 años, 2 meses
Puntos: 0
Pregunta Variables Globales en C#

Hola,

Tengo una clase principal donde se ejecuta el programa y una clase para la gestión de la bd.

En la clase de gestión de bd quiero tener como públicas las variables SQL, dbDataSet, FbConnection ... y las funciones Conectar, Desconectar ....
He declarado como static tanto la clase como las variables, pero a la hora de usarlo en el programa principal me dice que "no existe en el contexto actual"
Que me falta?


En Vb.net no tenía problemas para hacer todo esto público y poder usarlo sin problemas en cualquier parte del programa pero en C# no se como hacerlo.

Gracias


Clase gestión de Firebird
--------------------------------

....
public static class C_Firebird_Util
{

static string CadenaConexion = "ServerType=1;User=SYSDBA;" + "Password=manager;Dialect=3;Database=C:\\\\Desarro llos\\\\C#\\\\Factobra\\\\Bd\\\\FACTOBRA.FDB;pooli ng=false";

static FirebirdSql.Data.FirebirdClient.FbConnection FbConnection;
static FirebirdSql.Data.FirebirdClient.FbTransaction FbTransaction;
static FirebirdSql.Data.FirebirdClient.FbCommand cmd;

public static string SQL;

public static void Conectar(ref string Cod_Error)
{

try {
FbConnection = new FirebirdSql.Data.FirebirdClient.FbConnection(Caden aConexion);
dbDataSet.Clear();

if ((FbConnection.State == ConnectionState.Closed))
{
FbConnection.Open();
}
}

catch (FbException ex) {
// catches any error
MessageBox.Show(ex.Message.ToString());
Cod_Error = ex.Message;
}
finally {
}

}

......

Clase Principal (utiliza lo declarado en la clase anterior)
------------------
......
SQL= "SELECT CLIE_NOMBRE FROM T_CLIENTE";
SQL += "WHERE CLIE_TCLI_CODIGO=(SELECT TCLI_CODIGO FROM T_TIPO_CLIENTE WHERE TCLI_NOMBRE='PARTICULAR')";
try
{
dbDataSet.Clear();
C_Firebird_Util.Conectar();
dbDataAdapter = new FirebirdSql.Data.FirebirdClient.FbDataAdapter(SQL, FbConnection);
dbDataAdapter.Fill(dbDataSet);
DesConectar();
}
......
__________________
Un saludo
Mafc
España
  #2 (permalink)  
Antiguo 05/12/2007, 18:35
 
Fecha de Ingreso: febrero-2002
Mensajes: 58
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Variables Globales en C#

Hola,

Ya he visto como utilizar las variables globales mi problema ahora es al recorrer el dataset resultante de la consulta a la bd.(la línea donde da el error esta marcada en rojo) :

Error 1 'System.Data.DataSet.Tables' es 'propiedad' pero se utiliza como 'método'

No me deja acceder a C_Firebird_Util.dbDataSet.Tables(0), porque toma el dataset como una variable.
Hay alguna forma de solucionar esto?.

Gracias.



Clase principal

...
C_Firebird_Util.SQL= "SELECT CLIE_NOMBRE FROM T_CLIENTE";
C_Firebird_Util.SQL+= " WHERE CLIE_TCLI_CODIGO=(SELECT TCLI_CODIGO FROM T_TIPO_CLIENTE WHERE TCLI_NOMBRE='PARTICULAR')";
try
{
C_Firebird_Util.dbDataSet.Clear();
C_Firebird_Util.Conectar();
C_Firebird_Util.dbDataAdapter = new FirebirdSql.Data.FirebirdClient.FbDataAdapter(C_Fi rebird_Util.SQL, C_Firebird_Util.CadenaConexion);
C_Firebird_Util.dbDataAdapter.Fill(C_Firebird_Util .dbDataSet);
C_Firebird_Util.DesConectar();


}

//Recorrer el dataset resultante
String nombre;
foreach (DataRow dbDataRow1 in C_Firebird_Util.dbDataSet.Tables(0).Rows)
{
nombre = dbDataRow1(0).ToString;
}
.....


Clase de Acceso a Bd

....
private static System.Data.DataSet v_dbDataSet = new System.Data.DataSet();

public static System.Data.DataSet dbDataSet
{
get { return v_dbDataSet; }
set { v_dbDataSet = value; }
}
.....
__________________
Un saludo
Mafc
España
  #3 (permalink)  
Antiguo 05/12/2007, 22:36
 
Fecha de Ingreso: enero-2004
Ubicación: Ciudad de México
Mensajes: 476
Antigüedad: 20 años, 3 meses
Puntos: 14
Re: Variables Globales en C#

Los elementos de un arreglo en C# se llaman con corchetes. Tu codigo deberia ser:

foreach (DataRow dbDataRow1 in C_Firebird_Util.dbDataSet.Tables[0].Rows)
{
nombre = dbDataRow1[0].ToString();
}
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 08:26.