Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error El nombre cbx no existe en el contexto actual c#

Estas en el tema de Error El nombre cbx no existe en el contexto actual c# en el foro de Programación General en Foros del Web. Hola espero me puedan ayudar a solucionar mi problema que ya no doi una, trate de heredar del de mi clase principal y no logro ...
  #1 (permalink)  
Antiguo 07/10/2015, 16:28
Avatar de fidl117  
Fecha de Ingreso: julio-2013
Ubicación: Mexico
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta Error El nombre cbx no existe en el contexto actual c#

Hola espero me puedan ayudar a solucionar mi problema que ya no doi una, trate de heredar del de mi clase principal y no logro terminar con este problema que es siguiente.

Deseo enviar como parametro el valor que contiene un combobox a una consulta, que se encuentra desde una segunda clase (como se mostrara en el codigo), al colocar el parametro en :

Código:
 public class PagoBL 
    {

        private readonly PagoDA oPagoDA = new PagoDA();

        public IList<Pago> ObtenerPagos()
        {
            return oPagoDA.ObtenerPagos(Convert.ToInt32(cbxseminario.SelectedValue));
        }
como se ve en el codigo en la parte de cbxseminario me arroja :

El nombre cbxseminario no existe en el contexto actual

intente con lo siguiente:

public class PagoBL : abonos

trato de heredar los controles de mi clase principal ABONOS, cuando lo hago el error se quita pero a la hora de compilar mi proyecto me arroja un error, sopongo es la manera incorrecta de hacerlo, espero me puedan ayudar, dejare todo mi codigo por alguna cosa, saludos.

Código PHP:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;


namespace eom
{
    public 
partial class abonos Form
    
{
        public 
readonly PagoBL oPagoBL = new PagoBL();

        List<
Pagopagos = new List<Pago>();

        public 
abonos()
        {
            
InitializeComponent();
            
CargarPagos();
          

        }


        private 
void CargarPagos()
        {
            
dataGridView1.DataSource null;
            
dataGridView1.DataSource oPagoBL.ObtenerPagos();
            
           
        }

        public 
void GenerarPago()
        {
            
decimal monto Convert.ToDecimal(txtimporte.Text);
            List<
decimalfraccionarmonto = new List<decimal>();
            var 
CuotasPagar oPagoBL.ObtenerPagos();
            var 
montoTotal oPagoBL.ObtenerPagos().Sum(=> s.importe);
            if (
monto montoTotal)
            {
                
MessageBox.Show("El monto ingresado es mayor al monto deudor");
                return;
            }

            foreach (var 
cuota in CuotasPagar)
            {
                if (
monto == 0)
                    break;
                if (
monto cuota.importe)
                {
                    
monto -= cuota.importe;
                    
fraccionarmonto.Add(cuota.importe);
                }
                else
                {
                    
fraccionarmonto.Add(monto);
                    
monto -= monto;
                }

            }
           foreach (var 
pago in fraccionarmonto)
            {
                var 
CuotaPagar oPagoBL.ObtenerPagos().Take(1).SingleOrDefault();
                
CuotaPagar.importe CuotaPagar.importe pago;
                if (
CuotaPagar.importe == 0)
                    
CuotaPagar.estatus_pago true;

                
oPagoBL.ActualizarPago(CuotaPagar);
            }

            
CargarPagos();
        }
}


 
//Capa Entidades
    
public class Pago 
    
{
        public 
int id_saldo getset; }
        public 
decimal importe getset; }
        public 
DateTime fecha_registro getset; }
        public 
Boolean estatus_pago getset; }
        public 
int id_matricula getset; }


    }

    
//Capa de Negocio
    
public class PagoBL abonos
    
{

        private 
readonly PagoDA oPagoDA = new PagoDA();

      [
I][COLOR="Blue"]  public IList<PagoObtenerPagos()
        {
            return 
oPagoDA.ObtenerPagos(Convert.ToInt32(cbxseminario.SelectedValue));
        }[/
COLOR][/I]

        public 
void ActualizarPago(Pago pago)
        {
            
oPagoDA.ActualizarPago(pago);
        }




        
//Capa de Datos
        
public class PagoDA 
        
{
            

 private 
readonly SqlConnection connection;

            private 
string cadenaconexion = @"micadenitadeconexion....";
            
//Constructor

            
public PagoDA()
            {
                
connection = new SqlConnection(cadenaconexion);
            }

                  

 public 
IList<PagoObtenerPagos(int idmatricula,  Boolean EsPagado false)
            {
                
                try
                {
                   
                    var 
resultado = new List<Pago>();
                    var 
command = new SqlCommand("Select * from consulta_saldos_2 where estatus_pago = 0 and id_matricula = @idmatricula"connection);
                    
command.Connection connection;
                    
command.CommandText "Select * from consulta_saldos_2 Where estatus_pago = @EsPagado and id_matricula  = @idmatricula"
                    
command.Parameters.Add("@EsPagado"SqlDbType.Bit).Value EsPagado;
                    
command.Parameters.Add("@idmatricula"SqlDbType.Int).Value idmatricula ;


                    
command.CommandType CommandType.Text;
                    
connection.Open();
                    var 
reader command.ExecuteReader();

                    while (
reader.Read())
                    {
                        
resultado.Add(new Pago() { id_saldo Convert.ToInt32(reader[0]), importe Convert.ToDecimal(reader[1]), fecha_registro Convert.ToDateTime(reader[2]), estatus_pago Convert.ToBoolean(reader[3]), id_matricula Convert.ToInt32(reader[4]) });
                    }
                    return 
resultado;
                }
                
finally
                
{
                    if (
connection.State == ConnectionState.Open)
                        
connection.Close();

                }

            }

            public 
void ActualizarPago(Pago pago)
            {

                try
                {
                    var 
command = new SqlCommand();
                    
command.Connection connection;
                    
command.CommandText "Update consulta_saldos_2 set pago = @Monto, estatus_pago = @EsPagado Where id_factura = @IdPago ";
                    
command.Parameters.Add("@Monto"SqlDbType.Decimal).Value pago.importe;
                    
command.Parameters.Add("@EsPagado"SqlDbType.Bit).Value pago.estatus_pago;
                    
command.Parameters.Add("@IdPago"SqlDbType.Int).Value pago.id_saldo;
                    
command.CommandType CommandType.Text;
                    
connection.Open();
                    
command.ExecuteNonQuery();
                }
                
finally
                
{
                    if (
connection.State == ConnectionState.Open)
                        
connection.Close();

                }

            }
           
        } 
// public class PagoDA

        
    
}//public class PagoBL

    
}//nameespace 
  #2 (permalink)  
Antiguo 08/10/2015, 02:08
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Error El nombre cbx no existe en el contexto actual c#

Tu problema principal es de diseño. La función ObtenerPagos() está usando una variable externa de la clase PagoBL, de ahí que no tenga visibilidad sobre ella.

Si la función ObtenerPagos() ha de trabajar sobre el valor del combo seleccionado, queda mucho más claro, más limpio y más testeable, que le pases a ObtenerPagos() un entero. Se escapa de la responsabilidad de la clase PagoBL saber que el "id" del que ha de devolver los pagos corresponde a un combobox de nombre "cbxseminario" y que en realidad te devuelve un string que has de parsear.

Estas queriendo separar tu aplicación en tres capas y en realidad te las estás saltando accediendo directamente a elementos de la capa de presentación desde la capa de negocio...
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: c#, errores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:47.