CLR: .Net / Mono / Boo / Otros CLR > C#

 Help con constructor sobrecargado

(1/1)

tOWERR:
Hola, estoy haciendo en una clase un constructor sobre cargado en el cual le paso unos datos y esos datos los quiero meter en variables y esas variables utilizarlas en un metodo de ese constructor, os dejo aqui el codigo:
csharp Código:


--- Código: C# ---    public Conexion_BD(String server, String bd, String user, String pwd) {                     // Variables.                public String srv = server;                public String BD = bd;                public String us = user;                public String pw = pwd;                     // Metodo para conectar, se le pasa el servidor, la base de datos, el usuario y el password.                public MySqlConnection conectar()                {                    String datos = "Server=" + srv + ";Port=3306;Database=" + BD + ";Uid=" + us + ";Pwd=" + pw + ";";                    abrir(datos);                         try {                        con.Open();                        return con;                    } // FIN try                    catch (MySqlException ex) {                        return null;                    } // FIN catch                     } // FIN conectar                     // Metodo abrir.                public void abrir(string dat) {                    con = new MySqlConnection(dat);                } // FIN abrir             } // FIN Conexion_BD  Me dice que los nombres de las variables que le paso al constructor no existe en el contexto actual, ¿que puede ser?
¿Como puedo solucionarlo?
Un saludo.

tOWERR:
Ya he solucionado el error que me daba, he creado las variables que asigno en el metodo en la clase en vez de en el metodo. Ahora me da un error de que me falta una llave en la linea 29, pero no veo ninguna linea que me falte. Os dejo el nuevo codigo:


--- Código: C# ---     public Conexion_BD(String server, String bd, String user, String pwd) {                     // Variables.                srv = server;                BD = bd;                us = user;                pw = pwd;                     // Metodo para conectar, se le pasa el servidor, la base de datos, el usuario y el password.                public MySqlConnection conectar()                {                    String datos = "Server=" + srv + ";Port=3306;Database=" + BD + ";Uid=" + us + ";Pwd=" + pw + ";";                    abrir(datos);                         try {                        con.Open();                        return con;                    } // FIN try                    catch (MySqlException ex) {                        return null;                    } // FIN catch                     } // FIN conectar                     // Metodo abrir.                public void abrir(string dat) {                    con = new MySqlConnection(dat);                } // FIN abrir        } // FIN Conexion_BD  
Ayuda por favor.

ProfesorX:
Tienes metdodos dentro de metodos (o metodos anidados), en C#, no puedes tener metodos anidados, cada metodo debe ser independiente uno de otro. Un constructor tambien es un metodo, solo que es de un tipo especial que se ejecuta automaticamente al crear la clase ;)

Si el objetivo de declararlos anidados, es que no tengas acceso a esos metodos fuera de la clase, debes declararlos como privados.


--- Código: C# ---         public Conexion_BD(String server, String bd, String user, String pwd)        {            // Variables.            srv = server;            BD = bd;            us = user;            pw = pwd;        } // FIN Conexion_BD         // Metodo para conectar, se le pasa el servidor, la base de datos, el usuario y el password.        // Si no deseas accede al metodo fuera de la clase, declaralo privado,         // no anidado al metodo Conexion_BD        public MySqlConnection conectar()        {            String datos = "Server=" + srv + ";Port=3306;Database=" + BD + ";Uid=" + us + ";Pwd=" + pw + ";";            abrir(datos);             try            {                con.Open();                return con;            } // FIN try            catch (MySqlException ex)            {                return null;            } // FIN catch         } // FIN conectar         // Metodo abrir.        public void abrir(string dat)        {            con = new MySqlConnection(dat);        } // FIN abrir  
Saludos :)

Navegación

[0] Índice de Mensajes

Ir a la versión completa