none
Problemas para instanciar una clase RRS feed

  • Pregunta

  • Amigos buenas noches espero se encuentren todos bien.

    Solicito su ayuda nuevamente en el proyecto que estoy haciendo en un webforms para actualizar, borrar e insertar, resulta que al querer instanciar la capa de datos dentro del codebehind me manda un error, el programa lo estoy desarrollando en visual studio 2013 y anteriormente hize un programa parecido en visual studio 2012 de la misma forma por lo que no tuve problema excepto ahora que lo estoy implementando en vs 2013 les presento mi codigo donde tengo el problema:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Data;
    using System.Text.RegularExpressions;

    using HermesDatos;



    namespace Hermes
    {
        public partial class _Default : Page
        {
            Datos dat = new Datos();

            
            protected void Page_Load(object sender, EventArgs e)
            {



                if (!Page.IsPostBack)
                {

                    cargaDelegaciones();


                    DataTable estados = dat.ConsultarEstadosXEstados();

                    DdEstados.DataSource = estados;
                    DdEstados.DataTextField = "Estado";
                    DdEstados.DataValueField = "Id";
                    DdEstados.DataBind();
                }




            }

           

            protected void BConsulta_Click(object sender, EventArgs e)
            {
                int ide = 0;

                string rfc = "";

               

                if (TxtRfc.Text != "")
                {
                    if (!Datos.Verificar(Convert.ToString(TxtRfc.Text)))
                    {
                        LRFCInexistente.Text = "RFC no localizado";
                        return;
                    }
                    else
                    {
                        
                        rfc = Convert.ToString(TxtRfc.Text);
                       
                        CargaClientes(0, rfc);
                        return;
                    }

                }

                if (TxtId.Text != "")
                {
                    ide = int.Parse(TxtId.Text);
                    CargaClientes(ide, "");
                    return;
                }
                else //si lo dejo asi no me muestra los datos por rfc pero si lo deshabilito si los despliega
                {

                    LInexistente.Text = "Necesitas ingresar un id";
                    return;
                }



                //Instancia de la clase que vive en el proyecto de datos
                
                if (ide != 0) // opcional
                {
                    if (!Datos.Existe(ide))
                    {
                        LInexistente.Text = "Registro no encontrado";
                    }
                }
               


               
                /*
                DataTable cliente = dat.ObtenerClienteXId(ide, TxtRfc.Text);

                //Pintar datos
                if (cliente.Rows.Count > 0)
                {
                    TxtId.Text = cliente.Rows[0]["id"].ToString();
                    TxtRfc.Text = cliente.Rows[0]["rfc"].ToString();
                    TxtNombre.Text = cliente.Rows[0]["nombre"].ToString();
                    TxtCalle.Text = cliente.Rows[0]["calle"].ToString();
                    TxtNumero.Text = cliente.Rows[0]["num"].ToString();
                    TxtNumeroInterior.Text = cliente.Rows[0]["numi"].ToString();
                    TxtColonia.Text = cliente.Rows[0]["colonia"].ToString();
                    TxtDelegacion.Text = cliente.Rows[0]["delegacion"].ToString();
                    TxtCp.Text = cliente.Rows[0]["cp"].ToString();
                    TxtPais.Text = cliente.Rows[0]["pais"].ToString();
                    TxtTelefono.Text = cliente.Rows[0]["telefono"].ToString();
                    TxtEmail.Text = cliente.Rows[0]["email"].ToString();
                    TxtTipoCliente.Text = cliente.Rows[0]["tipoc"].ToString();

                    LAgregado.Text = "";
                    LCancelado.Text = "";
                }
                */


            }

            private void CargaClientes(int ide,string rfc)
            {
                DataTable cliente = dat.ObtenerClienteXId(ide, rfc);

                //Pintar datos
                if (cliente.Rows.Count > 0)
                {
                    TxtId.Text = cliente.Rows[0]["id"].ToString();
                    TxtRfc.Text = cliente.Rows[0]["rfc"].ToString();
                    TxtNombre.Text = cliente.Rows[0]["nombre"].ToString();
                    TxtCalle.Text = cliente.Rows[0]["calle"].ToString();
                    TxtNumero.Text = cliente.Rows[0]["num"].ToString();
                    TxtNumeroInterior.Text = cliente.Rows[0]["numi"].ToString();
                    TxtColonia.Text = cliente.Rows[0]["colonia"].ToString();
                    TxtDelegacion.Text = cliente.Rows[0]["delegacion"].ToString();
                    TxtCp.Text = cliente.Rows[0]["cp"].ToString();
                    TxtPais.Text = cliente.Rows[0]["pais"].ToString();
                    TxtTelefono.Text = cliente.Rows[0]["telefono"].ToString();
                    TxtEmail.Text = cliente.Rows[0]["email"].ToString();
                    TxtTipoCliente.Text = cliente.Rows[0]["tipoc"].ToString();

                    LAgregado.Text = "";
                    LCancelado.Text = "";
                }
            }
         
          


            protected void BAgregar_Click(object sender, EventArgs e)
            {
                int var = 0;

                if (var <= 12)
                {
                    try
                    {
                        var = Convert.ToInt32(TxtId.Text);
                    }

                    catch
                    {
                        LError.Text = " Debes ingresar todos los campos ";
                        return;
                    }
                }

                bool resultado = dat.AgregarCliente(TxtRfc.Text, TxtNombre.Text, TxtCalle.Text, TxtNumero.Text
                  , TxtNumeroInterior.Text, TxtColonia.Text, int.Parse(DdDelegacion.SelectedValue.ToString()),
                  TxtCp.Text, int.Parse(DdEstados.SelectedValue.ToString()), TxtPais.Text, TxtTelefono.Text
                  , TxtEmail.Text, TxtTipoCliente.Text);


                if (resultado != null)
                {
                    //  //limpiar las cajas de texto
                    TxtId.Text = "";
                    TxtRfc.Text = "";
                    TxtNombre.Text = "";
                    TxtCalle.Text = "";
                    TxtNumero.Text = "";
                    TxtNumeroInterior.Text = "";
                    TxtColonia.Text = "";
                    TxtDelegacion.Text = "";
                    TxtCp.Text = "";
                    TxtPais.Text = "";
                    TxtTelefono.Text = "";
                    TxtEmail.Text = "";
                    TxtTipoCliente.Text = "";

                    LError.Text = "";
                    //  //mandar mensaje de exito al usuario



                    LAgregado.Text = " Registro agregado con exito ";


                }



            }

            protected void BCancelar_Click(object sender, EventArgs e)
            {

                int ide = 0;


                try
                {
                    ide = Convert.ToInt32(TxtId.Text);

                }

                catch
                {
                    LError.Text = " No se puede borrar este registro ";
                    return;
                }


                DataTable cliente = dat.BorrarClienteXId(Convert.ToInt32(TxtId.Text));



                if (cliente != null)
                {
                    //  //limpiar las cajas de texto
                    TxtId.Text = "";
                    TxtRfc.Text = "";
                    TxtNombre.Text = "";
                    TxtCalle.Text = "";
                    TxtNumero.Text = "";
                    TxtNumeroInterior.Text = "";
                    TxtColonia.Text = "";
                    TxtDelegacion.Text = "";
                    TxtCp.Text = "";
                    TxtPais.Text = "";
                    TxtTelefono.Text = "";
                    TxtEmail.Text = "";
                    TxtTipoCliente.Text = "";

                    //  //mandar mensaje de exito al usuario


                    LCancelado.Text = "Registro borrado con exito";


                }
            }

            protected void BLimpiar_Click(object sender, EventArgs e)
            {
                TxtId.Text = "";
                TxtRfc.Text = "";
                TxtNombre.Text = "";
                TxtCalle.Text = "";
                TxtNumero.Text = "";
                TxtNumeroInterior.Text = "";
                TxtColonia.Text = "";
                TxtDelegacion.Text = "";
                TxtCp.Text = "";
                TxtPais.Text = "";
                TxtTelefono.Text = "";
                TxtEmail.Text = "";
                TxtTipoCliente.Text = "";

                LAgregado.Text = "";
                LCancelado.Text = "";
                LInexistente.Text = "";
                LRFCInexistente.Text = "";

                LRFCVacio.Text = "";
                LEmailInexistente.Text = "";
                LCPIncorrecto.Text = "";
                LTelIncorrecto.Text = "";
                LError.Text = "";
            }

           

           
        }
    }

    Mi capa de datos se llama simplemente "Datos" y la mando llamar desde la clase del codebehind con la variable dat, pero al querer usar esa variable para llamar al método de la capa de datos para que funcione en el evento o botón que corresponde ( como en el caso de agregar clientes ) me manda un error, me dice que no reconoce el dat a que se debe me pueden ayudar ? se los agradecer mucho ya que al parecer es lo único que me falta para terminar mi proyecto.

    De antemano muchas gracias y que descansen.

    Saludos.

    viernes, 8 de mayo de 2015 3:30

Todas las respuestas

  • Es un poco confuso tu cuestionamiento, proque por un lado pones tu pregunta en el foro de Windows Forms, pero heredas de una page y utilizas postback.

    Suponiendo entonces que te equivocaste de foro, debes instanciar dat en cada ocacion que lo utilices. En ASP no permanecen instanciadas las variables en cada postback, asi que debes instanciar cada vez.

    O convertir Datos en un clase estatica y

    Saludos.

    martes, 12 de mayo de 2015 21:13