Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 04-dic-2007, 15:50   #1 (permalink)
mafc ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2002
Mensajes: 39
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
mafc está desconectado   Responder Citando
Antiguo 05-dic-2007, 17:35   #2 (permalink)
mafc ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2002
Mensajes: 39
Triste 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
mafc está desconectado   Responder Citando
Antiguo 05-dic-2007, 21:36   #3 (permalink)
cesar_nava está en el buen camino
 
Fecha de Ingreso: enero-2004
Ubicación: Distrito Federal
Mensajes: 358
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();
}
cesar_nava está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:29.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93