none
Problemas con generar backup desde un formulario RRS feed

  • Pregunta

  • Tengo una duda, tengo un form1 que contiene una variable ruta, esa variable ruta yo la quiero mandar a mi FrmCrearBackup para mostrar la ruta fija en mi label Ubicacion 

    lo estoy haciendo de esta manera, pero no encuentro la forma de enviar la ruta

     private void CoGLaRuta()
            {
                ruta = ("C:\\Program Files\\Microsoft SQL Server\\MSSQL11.AECF\\MSSQL\\Backup");
            }
            private void crearToolStripMenuItem1_Click(object sender, EventArgs e)
            {
                FrmCrearBackup ir = new FrmCrearBackup();      
                ir.Show();
                CoGLaRuta. = ir.Show();

            }

    gracias por su tiempo

    sábado, 29 de octubre de 2016 17:05

Respuestas

  • Hola ProgramadorAECF,

    No es necesario agregar los paréntesis a la ruta, además podrías anteponer el @ para no estar duplicando los "\".

      private void CoGLaRuta()
      {
          ruta = @"C:\Program Files\Microsoft SQL Server\MSSQL11.AECF\MSSQL\Backup";
      }

    Con lo referente a tu pregunta, podrías enviar la ruta por medio del constructor del FrmCrearBackup. Pero veo innecesario el uso de la propiedad, podrías crear una función que retorne el Path y lo envíe.

     private string CoGLaRuta()
     {
          return @"C:\Program Files\Microsoft SQL Server\MSSQL11.AECF\MSSQL\Backup";
     }

    Y cuando creas la instancia del formulario :

     private void crearToolStripMenuItem1_Click(object sender, EventArgs e)
     {
        FrmCrearBackup ir = new FrmCrearBackup(CoGLaRuta()); //Envía la ruta que devuelve la función
        ir.Show();
     }

    Y en el FrmCrearBackup haces unos cambios al constructor :

        string ruta = string.Empty;
    
        //Constructor
        public FrmCrearBackup(string ruta)
        {
            InitializeComponent();
    
            this.ruta = ruta;
        }
    
        private void FrmCrearBackup_Load(object sender, EventArgs e)
        {
            lblUbicacion.Text = ruta;
        }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta ProgramadorAECF sábado, 29 de octubre de 2016 22:44
    sábado, 29 de octubre de 2016 18:32
  • Hola ProgramadorAECF,

    Pues básicamente agregué un parámetro al constructor, por defecto cuando creas un formulario este no presenta parámetros.

    Default :

     public FrmCrearBackup()
     {
         InitializeComponent();
     }

    Pero al agregarle un parámetro, cuando cree una nueva instancia de ese formulario necesito obligatoriamente pasarle un parámetro del mismo tipo.

    //Variable local que almacenará el valor, para usarla en este form
    string ruta = string.Empty;
    
    //Constructor que solicita un parámetro tipo string
    public FrmCrearBackup(string ruta)
    {
       InitializeComponent();
    
       //A la variable local le asigno el valor
       //que viene en el parámetro
       this.ruta = ruta;
    }

    Espero me haya hecho entender.

    Más info : Utilizar constructores (Guía de programación de C#)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta ProgramadorAECF martes, 1 de noviembre de 2016 17:08
    sábado, 29 de octubre de 2016 23:30

Todas las respuestas

  • Hola ProgramadorAECF,

    No es necesario agregar los paréntesis a la ruta, además podrías anteponer el @ para no estar duplicando los "\".

      private void CoGLaRuta()
      {
          ruta = @"C:\Program Files\Microsoft SQL Server\MSSQL11.AECF\MSSQL\Backup";
      }

    Con lo referente a tu pregunta, podrías enviar la ruta por medio del constructor del FrmCrearBackup. Pero veo innecesario el uso de la propiedad, podrías crear una función que retorne el Path y lo envíe.

     private string CoGLaRuta()
     {
          return @"C:\Program Files\Microsoft SQL Server\MSSQL11.AECF\MSSQL\Backup";
     }

    Y cuando creas la instancia del formulario :

     private void crearToolStripMenuItem1_Click(object sender, EventArgs e)
     {
        FrmCrearBackup ir = new FrmCrearBackup(CoGLaRuta()); //Envía la ruta que devuelve la función
        ir.Show();
     }

    Y en el FrmCrearBackup haces unos cambios al constructor :

        string ruta = string.Empty;
    
        //Constructor
        public FrmCrearBackup(string ruta)
        {
            InitializeComponent();
    
            this.ruta = ruta;
        }
    
        private void FrmCrearBackup_Load(object sender, EventArgs e)
        {
            lblUbicacion.Text = ruta;
        }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta ProgramadorAECF sábado, 29 de octubre de 2016 22:44
    sábado, 29 de octubre de 2016 18:32
  • Muchas gracias, solo tengo dudas de lo que hace esta parte

     string ruta = string.Empty;
    
        //Constructor
        public FrmCrearBackup(string ruta)
        {
            InitializeComponent();
    
            this.ruta = ruta;
        }
    

    sábado, 29 de octubre de 2016 22:44
  • Hola ProgramadorAECF,

    Pues básicamente agregué un parámetro al constructor, por defecto cuando creas un formulario este no presenta parámetros.

    Default :

     public FrmCrearBackup()
     {
         InitializeComponent();
     }

    Pero al agregarle un parámetro, cuando cree una nueva instancia de ese formulario necesito obligatoriamente pasarle un parámetro del mismo tipo.

    //Variable local que almacenará el valor, para usarla en este form
    string ruta = string.Empty;
    
    //Constructor que solicita un parámetro tipo string
    public FrmCrearBackup(string ruta)
    {
       InitializeComponent();
    
       //A la variable local le asigno el valor
       //que viene en el parámetro
       this.ruta = ruta;
    }

    Espero me haya hecho entender.

    Más info : Utilizar constructores (Guía de programación de C#)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta ProgramadorAECF martes, 1 de noviembre de 2016 17:08
    sábado, 29 de octubre de 2016 23:30
  • Muchas gracias
    martes, 1 de noviembre de 2016 17:09