none
Modelo 3 capas? RRS feed

  • Pregunta

  • Tengo un form con esto en su Load, ahí conecto a la base de datos y lleno el BindingSource, ¿Como podria desvincular este codigo del Formulario? No se como luego asignar los Bindings, he leido lo de 3 capas pero no me aclaro mucho...

            ConexionConDB = ConexionBD.AbrirBaseDeDatos();
            string Consulta = @"SELECT * FROM tipos_iva";
            Orden = new MySqlCommand(Consulta, ConexionConDB);
            Da = new MySqlDataAdapter(Orden);
            MySqlCommandBuilder cmdCB = new MySqlCommandBuilder();
            cmdCB.DataAdapter = Da;
            Da.InsertCommand = cmdCB.GetInsertCommand();
            Da.DeleteCommand = cmdCB.GetDeleteCommand();
            Da.UpdateCommand = cmdCB.GetUpdateCommand();
            //Ds.Tables.Add("usuarios");
            Da.Fill(Ds, "tipos_iva"); // lleno DataSource
            ConexionBD.CerrarConexion(ConexionConDB);
            this.Bs.DataMember = "tipos_iva";
            this.Bs.DataSource = Ds; //.Tables["usuarios"];
            // bindings
            this.txtCodigo.DataBindings.Add(new Binding("Texto", Bs, "codigo", true));
            // navegador
            this.navegador1.Bs = Bs;
    lunes, 16 de mayo de 2011 15:14

Respuestas

Todas las respuestas

  • En general la parte de conexiones y llenar databindings, datasets ponlo en otra página en una función.

    Luego, dentro de tu formulario simplemente vinculas tus textboxes a las funciones creadas en la otra página.


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    • Propuesto como respuesta dani671MVP lunes, 16 de mayo de 2011 16:32
    • Votado como útil AH_Jaketon martes, 17 de mayo de 2011 17:00
    • Marcado como respuesta AH_Jaketon martes, 24 de mayo de 2011 14:49
    lunes, 16 de mayo de 2011 16:32
  • Bueno luego de hacer un modelo de 3 capas me queda esto en el Load del Form... ¿Se puede optimizar mas o con eso vale?

      private void frmusuarios_Load(object sender, EventArgs e)
    
      {
    
       try
    
       {
    
        Conexion.IniciarSesion("localhost", "apliges", "root", "???????");
    
        var usuario = new AccesoDatos.Orm.Usuarios();
    
        Ds=usuario.ObtenerTodos();
    
        this.Bs.DataSource = Ds.Tables[0];
    
        // bindings
    
        this.txtCodigo.DataBindings.Add(new Binding("Texto", Bs, "codigo", true));
    
        this.txtNombre.DataBindings.Add(new Binding("Texto", Bs, "nombre", true));
    
        // navegador
    
        this.navegador1.Bs = Bs;    
    
        Conexion.FinalizarSesion();
    
       }
    
       catch (Exception ex)
    
       {
    
        MessageBox.Show(ex.Source+" - "+ex.Message);
    
       } 
    
    

    Por otro lado en la linea que pone this.Bs.DataSource = Ds.Tables[0]; como puedo hacer referencia a la tabla usuarios sin poner el 0 sino con su nombre... si lo hago asi Ds.Tables["usuarios"] me dice que no existe, he mirado el name de esa tabla en el Ds.Tables[0].Nametable o algo asi y pone Table... que tengo que hacer... el obtener todos es así:

     public DataSet ObtenerTodos()
    
    
    
    
    
    
    
     { return Conexion.GDatos.TraerDataSetSql("SELECT * FROM usuarios"); }
    
    
    
    
    
    
    
    

    Y traerDataSetSql es asi:

     // Obtiene un DataSet a partir de un Query Sql.
    
    
    
     public DataSet TraerDataSetSql(string comandoSql)
    
    
    
     {
    
    
    
      var mDataSet = new DataSet();
    
    
    
      CrearDataAdapterSql(comandoSql).Fill(mDataSet);
    
    
    
      return mDataSet;
    
    
    
     } // end TraerDataSetSql
    
    
    
    
     //Finalmente, es el turno de definir CrearDataAdapter, el cual aprovecha el método Comando para crear el comando necesario.
    
    
    
     protected override System.Data.IDataAdapter CrearDataAdapterSql(string comandoSql)
    
    
    
     {
    
    
    
      var da = new MySqlDataAdapter((MySqlCommand)ComandoSql(comandoSql));
    
    
    
      return da;
    
    
    
     } // end CrearDataAdapterSql





    martes, 17 de mayo de 2011 11:09
  • Alguien me puede decir si voy bien por ahi?....
    miércoles, 18 de mayo de 2011 14:19
  • Mucho mejor.

    No te olvides marcar como respuesta para cerrar este caso.


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    jueves, 19 de mayo de 2011 13:16