// Función para agregar una categoría public int agregarCategoria() { // La categoría la leemos del tbAgregarCategoria string _categoria = tbAgregarCategoria.Text; // Creamos un objeto llamado oConexion con el que nos // conectaremos a la base de datos miConexion oConexion = new miConexion(); // El procedure que tenemos en la base de datos nos exige // algunos parametros para poder insertar una categoria // por esa razón vamos a usar una lista de tipo SqlParameter // que se llamara parametros List <SqlParameter> parametros = new List <SqlParameter>(); // Creamos un nuevo parametro llamado categoria SqlParameter Categoria = new SqlParameter() { Value = _categoria, ParameterName = "nombre" }; // Lo agregamos a la lista llamada parametros parametros.Add(Categoria); int exito = oConexion.EjecutaNonQuery("agregarCategoria", parametros); return(exito); }
// Función para cargar datos en el DataGridView public void cargardgvResultados() { miConexion oConexion = new miConexion(); // Se entiende como movimientos los ingresos y egresos que realizamos // con nuestro dinero, en esta función mediante el procedure mostrarMovimientos // mostramos en el dataGridView TODOS los movimientos hechos dgvResultados.DataSource = oConexion.ObtenerDatos("mostrarMovimientos"); }
// Función para cargar categorias en un combobox public List <string> cargarCategorias() { // Creamos un objeto llamado oConexion con el que nos // conectaremos a la base de datos miConexion oConexion = new miConexion(); // Traer Datos nos regresa las diferentes categorías y las guardamos en una lista // que se llama Datos List <string> Datos = oConexion.TraerDatos("mostrarCategoria"); // Después, esta lista llamada Datos la usamos para llenar el combobox // usaremos return para que ese dato lo tome posteriormente el combobox return(Datos); }
// Función para modificar una categoría public void modificarCategoria() { int indice = dgvResultados.CurrentRow.Index; // Elegimos del indice actual y la columna/celda 0 string _viejaCategoria = dgvResultados.Rows[indice].Cells[0].Value.ToString(); string _nuevaCategoria = tbAgregarCategoria.Text; DialogResult respuesta = MessageBox.Show("¿Está seguro que desea cambiar " + _nuevaCategoria.ToUpper() + " por " + _viejaCategoria.ToUpper(), "Alerta", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation); // Si la respuesta es Aceptar entonces modificamos // Caso contrario no hacemos nada :) if (respuesta == DialogResult.OK) { miConexion oConexion = new miConexion(); List <SqlParameter> parametros = new List <SqlParameter>(); // Parametros #region SqlParameter viejaCategoria = new SqlParameter() { Value = _viejaCategoria, ParameterName = "viejaCategoria" }; parametros.Add(viejaCategoria); SqlParameter nuevaCategoria = new SqlParameter() { Value = _nuevaCategoria, ParameterName = "nuevaCategoria" }; parametros.Add(nuevaCategoria); #endregion // EjecutaNonQuery se utiliza para actualizar, eliminar e insertar // en este caso vamos a insertar/agregar además le agregamos los parametros // que necesita el procedimiento para que se ejecute correctamente oConexion.EjecutaNonQuery("modificarCategoria", parametros); consultarCategoria(); } // Termina if }
// Función para eliminar categoría public void eliminarCategoria() { string _categoria = tbAgregarCategoria.Text; miConexion oConexion = new miConexion(); List <SqlParameter> parametros = new List <SqlParameter>(); // Parametros #region SqlParameter Categoria = new SqlParameter() { Value = _categoria, ParameterName = "nombre" }; parametros.Add(Categoria); #endregion oConexion.EjecutaNonQuery("eliminarCategoria", parametros); }
private void dgvResultados_CellEndEdit(object sender, DataGridViewCellEventArgs e) { string nombre_actual = dgvResultados.CurrentRow.Cells[0].Value.ToString(); string concepto_actual = dgvResultados.CurrentRow.Cells[1].Value.ToString(); decimal cantidad_actual = Convert.ToDecimal(dgvResultados.CurrentRow.Cells[2].Value); string categoria_actual = dgvResultados.CurrentRow.Cells[3].Value.ToString(); DateTime fecha_actual = Convert.ToDateTime(dgvResultados.CurrentRow.Cells[4].Value); MessageBox.Show(nombre_actual + " " + concepto_actual); miConexion oConexion = new miConexion(); List <SqlParameter> parametros = new List <SqlParameter>(); // Parametros variable_anterior #region SqlParameter nombre_Anterior = new SqlParameter() { Value = nombre_anterior, ParameterName = "nombre_anterior" }; parametros.Add(nombre_Anterior); SqlParameter concepto_Anterior = new SqlParameter() { Value = concepto_anterior, ParameterName = "concepto_Anterior" }; parametros.Add(concepto_Anterior); SqlParameter cantidad_Anterior = new SqlParameter() { Value = cantidad_anterior, ParameterName = "cantidad_Anterior" }; parametros.Add(cantidad_Anterior); SqlParameter categoria_Anterior = new SqlParameter() { Value = categoria_anterior, ParameterName = "categoria_Anterior" }; parametros.Add(categoria_Anterior); SqlParameter fecha_Anterior = new SqlParameter() { Value = fecha_anterior, ParameterName = "fecha_Anterior" }; parametros.Add(fecha_Anterior); #endregion // Parametros variable_actual #region SqlParameter nombre_Actual = new SqlParameter() { Value = nombre_actual, ParameterName = "nombre_actual" }; parametros.Add(nombre_Actual); SqlParameter concepto_Actual = new SqlParameter() { Value = concepto_actual, ParameterName = "concepto_Actual" }; parametros.Add(concepto_Actual); SqlParameter cantidad_Actual = new SqlParameter() { Value = cantidad_actual, ParameterName = "cantidad_Actual" }; parametros.Add(cantidad_Actual); SqlParameter categoria_Actual = new SqlParameter() { Value = categoria_actual, ParameterName = "categoria_Actual" }; parametros.Add(categoria_Actual); SqlParameter fecha_Actual = new SqlParameter() { Value = fecha_actual, ParameterName = "fecha_Actual" }; parametros.Add(fecha_Actual); #endregion // EjecutaNonQuery se utiliza para actualizar, eliminar e insertar // en este caso vamos a insertar/agregar además le agregamos los parametros // que necesita el procedimiento para que se ejecute correctamente oConexion.EjecutaNonQuery("modificarCategoria", parametros); }
// Función para consultar las categorías public void consultarCategoria() { miConexion oConexion = new miConexion(); dgvResultados.DataSource = oConexion.ObtenerDatos("mostrarCategoria"); }
// Función para consultar ingresos y egresos public void consultarMovimiento() { string _concepto = ""; string _cantidad = ""; string _tipo = ""; string _categoria = ""; string _fechaInicial = dtpFechaInicial.Value.ToShortDateString(); string _fechaFinal = dtpFechaFinal.Value.ToShortDateString(); // Validaciones para evitar errores, campos vacíos, etc #region // El procedimiento que vamos a usar para hacer consultas necesita 5 parametros que // son las variables declaradas arriba, por default los textbox que corresponden // concepto, cantidad y el tipo de ingreso/egreso están vacios así como fecha inicial y final // Vamos a darle al usuario la posibilidad de buscar de todas las formas posibles // En caso de que no quiera poner ni concepto, ni cantidad, ni tipo puede hacerlo // solamente con las fechas (estas son indispensables segun nuestro procedimiento // que puedes consultar en la base de datos así que no puedes dejarlas vacías) // Otra opción es solamente buscar con el concepto y fecha inicial-final // Todas las posibilidades las puedes encontrar en el procedure mostrarMovimientosSegun // En caso de que uno de los textbox concepto, cantidad, tipo estén vacios, nulos o // estén llenos de puros espacios automáticamente mediante las siguientes validaciones // vamos a asignarle el valor "" el cual en nuestro procedure nos servirá para detectar // que el usuario NO QUIERE buscar en función de dichos datos // Por el contrario si el usuario ingresó en los textbox algo correcto o elige un dato // del combobox categoría, el procedure detectará que el usuario SÍ QUIERE buscar // en función de dichos datos if (rbIngreso.Checked) { _tipo = "1"; } if (rbEgreso.Checked) { _tipo = "2"; } if (rbAmbosConsultar.Checked) { _tipo = "3"; } // Verificamos si está vacío o null o lleno de puros espacios el textbox if (string.IsNullOrEmpty(tbConceptoConsultar.Text) || string.IsNullOrWhiteSpace(tbConceptoConsultar.Text)) { // Si cumple alguno de esos casos entonces diremos que _concepto // tiene una cadena vacía _concepto = ""; } else { // Si escribimos correctamente los datos entonces _concepto valdrá // lo que hayamos escrito en el textbox _concepto = tbConceptoConsultar.Text; } if (string.IsNullOrEmpty(tbCantidadConsultar.Text) || string.IsNullOrWhiteSpace(tbCantidadConsultar.Text)) { // Si cumple alguno de esos casos entonces diremos que _cantidad // tiene una cadena vacía _cantidad = ""; } else { // Si escribimos correctamente los datos entonces _cantidad valdrá // lo que hayamos escrito en el textbox _cantidad = tbCantidadConsultar.Text; } if (cbCategoriaConsultar.Items.Count <= 0) { // Si no hemos dado click en el combobox _tipo // tendrá una cadena vacía _categoria = ""; } else { // Si damos click y elegimos un dato del combobox // este será el valor de _tipo _categoria = cbCategoriaConsultar.SelectedItem.ToString(); } #endregion miConexion oConexion = new miConexion(); List <SqlParameter> parametros = new List <SqlParameter>(); // Parametros #region SqlParameter Concepto = new SqlParameter() { Value = _concepto, ParameterName = "concepto" }; parametros.Add(Concepto); SqlParameter Cantidad = new SqlParameter() { Value = _cantidad, ParameterName = "cantidad" }; parametros.Add(Cantidad); SqlParameter Categoria = new SqlParameter() { Value = _categoria, ParameterName = "categoria" }; parametros.Add(Categoria); SqlParameter Tipo = new SqlParameter() { Value = _tipo, ParameterName = "tipo" }; parametros.Add(Tipo); SqlParameter FechaInicial = new SqlParameter() { Value = _fechaInicial, ParameterName = "fechaInicial" }; parametros.Add(FechaInicial); SqlParameter FechaFinal = new SqlParameter() { Value = _fechaFinal, ParameterName = "fechaFinal" }; parametros.Add(FechaFinal); #endregion // TraerDatosConParametros es un método para llamar a un procedure que necesite // parametros y que dicho procedure sea para realizar CONSULTAS, es decir un SELECT dgvResultados.DataSource = oConexion.TraerDatosConParametros("mostrarMovimientosSegun", parametros); }
// Función para agregar un Egreso que hayamos tenido egreso significa gastar dinero // el valor del parámetro TIPO será 2, lo que para nosotros represnta Egreso public void agregarEgreso() { string _concepto = tbConcepto.Text; decimal _cantidad = Convert.ToDecimal(tbCantidad.Text); string _categoria = cbCategoriaRegistro.SelectedItem.ToString(); string _fecha = dtpRegistro.Value.ToShortDateString(); miConexion oConexion = new miConexion(); List <SqlParameter> parametros = new List <SqlParameter>(); // Parametros #region SqlParameter Concepto = new SqlParameter() { Value = _concepto, ParameterName = "concepto" }; parametros.Add(Concepto); SqlParameter Cantidad = new SqlParameter() { Value = _cantidad, ParameterName = "cantidad" }; parametros.Add(Cantidad); SqlParameter Categoria = new SqlParameter() { Value = _categoria, ParameterName = "categoria" }; parametros.Add(Categoria); SqlParameter Tipo = new SqlParameter() { Value = 2, // 2 significa egreso ParameterName = "tipo" }; parametros.Add(Tipo); SqlParameter Fecha = new SqlParameter() { Value = _fecha, ParameterName = "fecha" }; parametros.Add(Fecha); #endregion // EjecutaNonQuery se utiliza para actualizar, eliminar e insertar // en este caso vamos a insertar/agregar además le agregamos los parametros // que necesita el procedimiento para que se ejecute correctamente oConexion.EjecutaNonQuery("agregarMovimiento", parametros); }
// Función para agregar un Ingreso que hayamos tenido ingreso significa ganar dinero // el valor del parámetro TIPO será 1, lo que para nosotros represnta Ingreso public void agregarIngreso() { string _concepto = tbConcepto.Text; decimal _cantidad = Convert.ToDecimal(tbCantidad.Text); // Convertimos a decimal (dinero) string _categoria = cbCategoriaRegistro.SelectedItem.ToString(); // Para leer lo que seleccionamos en el combobox // Cuando queremos leer de un dataGridView el valor seleccionado usamos solamente // esto nombreDeMiDataGridView.Value sin embargo esto nos arroja tanto la fecha como la hora // nosotros solamente necesitamos la fecha por eso agregamos .ToShortDateString() string _fecha = dtpRegistro.Value.ToShortDateString(); miConexion oConexion = new miConexion(); List <SqlParameter> parametros = new List <SqlParameter>(); // Parametros #region SqlParameter Concepto = new SqlParameter() { Value = _concepto, ParameterName = "concepto" }; parametros.Add(Concepto); SqlParameter Cantidad = new SqlParameter() { Value = _cantidad, ParameterName = "cantidad" }; parametros.Add(Cantidad); SqlParameter Categoria = new SqlParameter() { Value = _categoria, ParameterName = "categoria" }; parametros.Add(Categoria); SqlParameter Tipo = new SqlParameter() { Value = 1, // 1 significa ingreso ParameterName = "tipo" }; parametros.Add(Tipo); SqlParameter Fecha = new SqlParameter() { Value = _fecha, ParameterName = "fecha" }; parametros.Add(Fecha); #endregion // EjecutaNonQuery se utiliza para actualizar, eliminar e insertar // en este caso vamos a insertar/agregar además le agregamos los parametros // que necesita el procedimiento para que se ejecute correctamente oConexion.EjecutaNonQuery("agregarMovimiento", parametros); }