Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Variables Globales en C# (http://www.forosdelweb.com/f29/variables-globales-c-538411/)

mafc 04/12/2007 16:50

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();
}
......

mafc 05/12/2007 18:35

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; }
}
.....

cesar_nava 05/12/2007 22:36

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();
}


La zona horaria es GMT -6. Ahora son las 19:02.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.