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:
como se ve en el codigo en la parte de cbxseminario me arroja :public class PagoBL { private readonly PagoDA oPagoDA = new PagoDA(); public IList<Pago> ObtenerPagos() { return oPagoDA.ObtenerPagos(Convert.ToInt32(cbxseminario.SelectedValue)); }
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<Pago> pagos = 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<decimal> fraccionarmonto = new List<decimal>();
var CuotasPagar = oPagoBL.ObtenerPagos();
var montoTotal = oPagoBL.ObtenerPagos().Sum(s => 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 { get; set; }
public decimal importe { get; set; }
public DateTime fecha_registro { get; set; }
public Boolean estatus_pago { get; set; }
public int id_matricula { get; set; }
}
//Capa de Negocio
public class PagoBL : abonos
{
private readonly PagoDA oPagoDA = new PagoDA();
[I][COLOR="Blue"] public IList<Pago> ObtenerPagos()
{
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<Pago> ObtenerPagos(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