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