Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (8-41) Capa Presentación frmCategoria
Buen día amigos, En este artículo implementaremos ya la capa Presentación, diseñaremos el formulario FrmCategoria dibujaremos todos los controles específicos datagridview para mostrar el listado de todas las categorías de la base de datos en SQL Server 2014 directamente desde Visual Studio 2013, los textbox respectivos, los Buttons, checkbox, ErrorProvider para mostrar los mensajes de validaciones, tooltip para mostrar lo mensajes de ayuda; implementaremos los métodos para mostrar registros de una base de datos en sql server desde Visual Studio, implementaremos los procedimientos para habilitar botones, limpiar las cajas de texto, ocultar columnas en el lenguaje de programación Csharp.
Pueden descargar el paquete del proyecto desarrollado en el curso, la base de datos, los procedimientos almacenados y el sistema completo hasta el Video 41 desde:
Puedes descargar la versión completa del proyecto con todas las funcionalidades terminadas desde:
Pueden seguir el curso completo y aprender a desarrollar un Sistema de Ventas en Csharp.Net utilizando como IDE de desarrollo Visual Studio 2013 y como gestor de Base de datos SQL Server 2014 desde:
No se olviden siempre de Visitar mi canal www.youtube.com/jcarlosad7 para ver los nuevos cursos.
Capa Presentación
Es la que ve el usuario (también se la denomina "capa de Usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica únicamente con la capa de Negocio. También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario.
Formulario FrmCategoría
TabPage Listado
TabPage Mantenimiento
Código Fuente - Procedimientos
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
//Comunicarse con la
Capa de Negocios
using
CapaNegocio;
namespace
CapaPresentacion
{
public partial class frmCategoria
: Form
{
//Variable que nos indica si
vamos a insertar un nuevo producto
private bool
IsNuevo = false;
//Variable que nos indica si
vamos a modificar un producto
private bool
IsModificar = false;
//Constructor del formulario
public
frmCategoria()
{
InitializeComponent();
this.ttMensaje.SetToolTip(this.txtNombre,
"Ingrese el Nombre de la categoría");
}
//Para mostrar mensaje de
confirmación
private void
MensajeOK(string Mensaje)
{
MessageBox.Show(Mensaje, "Sistema Ventas", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//Para mostrar mensaje de
error
private void
MensajeError(string Mensaje)
{
MessageBox.Show(Mensaje, "Sistema Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//Limpia los controles del
formulario
private void
Limpiar()
{
this.txtNombre.Text = string.Empty;
this.txtDescripcion.Text=string.Empty;
this.txtIdcategoria.Text = string.Empty;
}
//Habilita los controles de
los formularios
private void
Habilitar(bool Valor)
{
this.txtNombre.ReadOnly
= !Valor;
this.txtDescripcion.ReadOnly
= !Valor;
this.txtIdcategoria.ReadOnly = !Valor;
}
//Habilita los botones
private void Botones()
{
if (this.IsNuevo || this.IsModificar)
{
this.Habilitar(true);
this.btnNuevo.Enabled = false;
this.btnGuardar.Enabled = true;
this.btnModificar.Enabled = false;
this.btnCancelar.Enabled = true;
}
else
{
this.Habilitar(false);
this.btnNuevo.Enabled = true;
this.btnGuardar.Enabled = false;
this.btnModificar.Enabled = true;
this.btnCancelar.Enabled = false;
}
}
private void OcultarColumnas()
{
this.datalistado.Columns[0].Visible = false;
this.datalistado.Columns[1].Visible = false;
}
//Método Mostrar()
private void
Mostrar()
{
this.datalistado.DataSource
= nCategoria.Mostrar();
this.OcultarColumnas();
LblTotal.Text ="Total
Registros: " + Convert.ToString(datalistado.Rows.Count);
}
//Método BuscarNombre
private void
BuscarNombre()
{
this.datalistado.DataSource
= nCategoria.BuscarNombre(this.txtBuscar.Text);
this.OcultarColumnas();
LblTotal.Text ="Total
Registros: " + Convert.ToString(datalistado.Rows.Count);
}
//Método Constructor
private void
frmCategoria_Load(object sender, EventArgs
e)
{
//Para ubicar al
formulario en la parte superior del contenedor
this.Top
= 0;
this.Left
= 0;
//Le decimos al
DataGridView que no auto genere las columnas
//Llenamos el
DataGridView con la información
//de todos nuestras
categorías
this.Mostrar();
//Deshabilita los
controles
this.Habilitar(false);
//Establece los
botones
this.Botones();
}
//Llamamos al Método
Buscar
private void btnbuscar_Click(object
sender, EventArgs e)
{
private void txtBuscar_TextChanged(object
sender, EventArgs e)
{
this.BuscarNombre();
}
}
}
Video 8: Sistema de Ventas C# - Visual Studio 2013 - Sql Server 2014 (8-34) Capa Presentación Windows Forms
Saludos Imperio, un abrazo a la distancia!!!.
Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (8-41) Capa Presentación frmCategoria
Reviewed by IncanatoIt-ad
on
18:49
Rating:
Muchas gracias por el curso de c# segui todas las instrucciones y me funciona casi todo
ResponderEliminarsolo que cuando intento Buscar y le pongo una letra al TextBox Buscar se para el sistema y me manda a este codigo
//Metodo para ocultar columnas
private void OcultarColumnas()
{
this.dataListado.Columns[0].Visible = false;
this.dataListado.Columns[1].Visible = false; //ESTE ES EL ERROR en false NO ME PERMITE BUSCAR
}
La solución esta desde la clase de Conexión a la base de datos
EliminarDos formas....
1:- Le antepones @ así como esta el ejemplo:
public static string Cn = @"Data Source=IGLOSO\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";
2.- Le aumentas un \ así como esta el ejemplo:
public static string Cn = "Data Source=IGLOSO\\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";
Espero y haya sido de utilidad y resuelva tu problema..
Saludos y buena tarde
La solución esta desde la clase de Conexión a la base de datos
EliminarDos formas....
1:- Le antepones @ así como esta el ejemplo:
public static string Cn = @"Data Source=IGLOSO\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";
2.- Le aumentas un \ así como esta el ejemplo:
public static string Cn = "Data Source=IGLOSO\\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";
Espero y haya sido de utilidad y resuelva tu problema..
Saludos y buena tarde
tengo problemas cuando pruebo me sale el datagri en blanco y el label de la cantidad me sale con el nombre del label normal creo que no me esta conectado a la base de datos que debo hacer
ResponderEliminarSaludos mi cadena de conexion es esta:
ResponderEliminarpublic static string Cn = @"Data Source=WIN-PA9HIEP6MCO; Initial Catalog=dbventas; Integrated Security =True";
probé lo que dices de ambas formas y no funciono que puedo hacer?
tardes compañero ud encontro el problema que tuvo en el tuturial 8 sobre la conexion a la base de datos sobre los datos en blanco q tambien tengo el mismo problema para ver si me ayudas gracias
EliminarHola Juan Carlos primero que todo quería agradecerte por estos vídeo cursos, son fáciles de comprender y muy interesantes.
ResponderEliminarHe estado teniendo el siguiente problema y quería ver si me puedes ayudar:
this.dataListado.DataSource = NCategoria.BuscarNombre(this.txtbuscar.Text); La clase NCategoria no la reconoce, y me aparece como un error.
Al principio del formulario si agregue using CapaNegocio; pero aparece como si el formulario no lo estuviera usando, también mire las referencias y si están, que puede estar mal?
Estaré atenta a tu respuesta,
Muchas Gracias
Att Viviana Bedoya
Juan ya encontré el problemita, no había puesto public en la clase NCategoria,
ResponderEliminarSeguiré viendo tus vídeos y aprendiendo de ellos, muchas gracias
Att Viviana Bedoya
puedes decirme como le hiciste?
Eliminarhola q tal muchas gracias por tus tutoriales me ayudan mucho el problema que tengo es q me sale error en la parte cuando ejecuto categoria y presentacion ya q solo me permite guardar un sola ves ala segunda ves me sale el error"la cadena de entrada no tiene formato correcto"
ResponderEliminartodo iba bien hasta que no pude crear una conexión a la base de datos, ya intente con el @ y las dos \\ y no logro nada, ya hasta le cambie el nombre a mi pc y nada ayuda porfavor
ResponderEliminarRevise este video https://www.youtube.com/watch?v=tlrfqF0Zcp0&list=PLZPrWDz1Molqn16IORKg8nFYTejgYCHJp&index=40 le ayudará bastante.
EliminarHOLA, excelente tutorial, lo estoy siguiendo, pero tengo un problema cuando hago la busqueda por nombre, me manda el siguiente error, espero que puedan guiarme...
ResponderEliminarExcepción no controlada del tipo 'System.ArgumentOutOfRangeException' en mscorlib.dll
Información adicional: Index was out of range. Must be non-negative and less than the size of the collection.
saludos..!!!
Revise si el método buscar consulta a la función que hace referencia al procedimiento respectivo en la base de datos.
EliminarSaludos.
HOLA, excelente el tutorial, lo estoy siguiendo, pero tengo el mismo problema de todos los anteriores amigos cuando hago la busqueda por nombre, me manda el siguiente error, espero que puedan guiarme...
ResponderEliminarExcepción no controlada del tipo 'System.ArgumentOutOfRangeException' en mscorlib.dll
Información adicional: Index was out of range. Must be non-negative and less than the size of the collection.
Ya intente de todo, revise los procedimientos, los metodos de Ncategoria y Dcategoria, vi el video 41, pero al colocar el cursor en el txtBuscar me sale el error, despues todo carga perfecto. espero me puedas ayudar amigo.
gracias por todo
Seguro estas llamando al método mostrar y este no obtiene ningún dato de la base.
EliminarHola Juan Carlos
ResponderEliminarMi admiración por el trabajo que has presentado que nos sirve a los profanos como yo apreciar tu excelente trabajo.
El problema que me encuentro despues de visionar hasta el video 7 es que me sale este error: Se detectó una excepción que puede estar causada por una extensión.
Para obtener mas información, examine el archivo 'C:\Users\manolo1\AppData\Roadming\Microsoft\VisualStudio\14.0\ActivbityLog.xml'.
¿Que es lo que puede estar causando dicho eror?
Un Saludo desde Gran Canaria España.
HOla.
EliminarEn el archivo que le muestra esta almacenado el error.
con lo que me escribe no podría determinar cual es su falla.
Saludos.
Hola! buenas tardes, antes que nada quiero agradecerte por el curso, está bastante completo y he aprendido mucho a lo largo de él, ovy por ahí del video 9, y tengo un problema con mi formulario de FrmCategorias, ya que al ejecutar no me muestra ninguna información, no se qué es lo que está pasando, bajé el codigo y está exactamente igual y no me manda error de conexión ni nada por el estilo asi que no se me ocurre que hacer al respecto, espeor puedas orientarm un poco. Sin más por el momento me despido y quedo de ti. Saludos cordiales
ResponderEliminarRevise este video le será de mucha ayuda: https://www.youtube.com/watch?v=tlrfqF0Zcp0&list=PLZPrWDz1Molqn16IORKg8nFYTejgYCHJp&index=40
EliminarHola Juan Carlos, gracias por compartir tus cursos, te queria comentar que no puedo filtrar el datalistado desde el txtBuscar, no se cual es el error, porque en realidad no me arroja ninguno, simplemente no filtra nada, te pongo mi codigo
ResponderEliminaren la clase datos:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace fjdDatos
{
public class fjdDRubros
{
private int _Idrubro;
private string _Denominacion;
private string _Estado;
public string TextoBuscar;
public int Idrubro
{
get { return _Idrubro; }
set { _Idrubro = value; }
}
public string Denominacion
{
get { return _Denominacion; }
set { _Denominacion = value; }
}
public string Estado
{
get { return _Estado; }
set { _Estado = value; }
}
public fjdDRubros()
{
}
public fjdDRubros(int idrubro,string denominacion,string estado)
{
this.Idrubro = idrubro;
this.Denominacion = denominacion;
this.Estado = estado;
}
public DataTable BuscarDenominacion(fjdDRubros Rubros)
{
DataTable DtResultado = new DataTable("rubros");
SqlConnection SqlCon = new SqlConnection();
try
{
SqlCon.ConnectionString = fjdConexion.Cn;
SqlCommand SqlCmd = new SqlCommand();
SqlCmd.Connection = SqlCon;
SqlCmd.CommandText = "spbuscar_rubros";
SqlCmd.CommandType = CommandType.StoredProcedure;
SqlParameter ParTextoBuscar = new SqlParameter();
ParTextoBuscar.ParameterName = "@textobuscar";
ParTextoBuscar.SqlDbType = SqlDbType.VarChar;
ParTextoBuscar.Size = 50;
ParTextoBuscar.Value = Rubros.TextoBuscar;
SqlCmd.Parameters.Add(ParTextoBuscar);
SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd);
SqlDat.Fill(DtResultado);
}
catch (Exception ex)
{
DtResultado = null;
}
return DtResultado;
}
}
}
en la clase logica:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using fjdDatos;
using System.Data;
namespace fjdLogica
{
public class fjdLRubros
{
public static DataTable BuscarDenominacion(string TextoBuscar)
{
fjdDRubros Obj = new fjdDRubros();
Obj.TextoBuscar = TextoBuscar;
return Obj.BuscarDenominacion(Obj);
}
}
}
y en el formulario:
private void Mostrar()
{
this.dataListado.DataSource = fjdLRubros.Mostrar();
this.Columnas();
lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count);
}
private void BuscarDenominacion()
{
this.dataListado.DataSource = fjdLRubros.BuscarDenominacion(this.txtBuscar.Text);
lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count);
}
private void btnBuscar_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtBuscar.Text))
{
this.Mostrar();
}
else
{
this.BuscarDenominacion();
}
}
Te agradeceria que me digas donde tengo el error asi puedo terminar el formulario, el resto funciona todo OK, muchas gracias
hola juan carlos un gusto primeor que nada mucha gracis por tu curso la verdad estu muy bueno lo estoy siguiendo al pie de la letra pero pues tengo problemas espero me piuedas ayudar en el metodo mostrar de FrmCategoria te muestro
ResponderEliminarprivate void Mostrar()
{
this.dataListado.DataSource = NCategoria.Mostrar(); //aqui es donde tengo el rrror no me mandanda a la llamar NCategoria como a ti algo pude hacer mal?
this.OcultarColumnas();
}