//-->Método BuscarNombre //----------------------------------------------------------------------------------------------- private void BuscarNombre() { string cRecibe; int nRecibe; //Este es el del tipo Datatable //this.dataListado.DataSource = NEntidad.BuscarNombre(this.txtBuscar.Text); cRecibe = NEntidad.BuscarNombre(this.txtBuscar.Text); nRecibe = Convert.ToInt32(cRecibe); //-->Lo que no veo bien seria el rendimiento, si hay mucha información esto no es bueno. for (int i = 0; i < dataListado.Rows.Count; i++) { String key = dataListado.Rows[i].Cells["identifica"].Value.ToString(); if (key.Contains(cRecibe) == true) { //->Colocar el DataGrid en la posición que me llega dataListado.CurrentCell = dataListado.Rows[i].Cells[nRecibe]; dataListado.Refresh(); } } this.OcultarColumnas(); //KAKA lblTotal.Text = "Total de Registros: " + Convert.ToString(dataListado.Rows.Count); }
//-->Método Mostrar //------------------------------------------------------------------------------------------- private void Mostrar() { /* * Todas las llamadas que se hacen a Negocio y a datos son funciones de tipo DataTable * por lo cual eso para ese sistema ya no vale, no es un DataTable lo que retorna * * this.dataListado.DataSource = NEntidad.Mostrar(dataListado); * * Este código no respeta las tres capas, ya que no veo la forma de tener este * código en la capa Datos para rellenar el Grid : * * Se esta utilinado una Coleccion - lista, esto lo vi en el curso del Gallego.. * */ //-->FINALMENTE LO HE CONSEGUIDO JODERRR, SIGO RESPETENADO LAS TRES CAPAS this.dataListado.DataSource = NEntidad.Mostrar(); this.OcultarColumnas(); //KAKA //-->Pintamos el total de registros : OjO el count es int tenemos que convertirlo a String lblTotal.Text = "Total de Registros: " + Convert.ToString(dataListado.Rows.Count); }
//----> BOTON DE ELIMINAR ---------------------------------------------------------------------- private void btnEliminar_Click(object sender, EventArgs e) { try { //Variable de tipo DialogResult entiendo que sirve para capturar datos de preguntas al usuario DialogResult Opcion; //Tipo de mensaje que va a mostrar al usuario los botones SI o No Opcion = MessageBox.Show("Realmente Desea Eliminar los Registros", "Sistema de Ventas", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (Opcion == DialogResult.OK) //Si es que SI, que ok { string Codigo; string Rpta = ""; //->Bucle para recorrerse todo el GRID y mira que esta marcado para borrarlo.....este sistema no vale para muchos registros // si cada vez que va a borrar se tiene que recorrer todo el GRID menuda mierder foreach (DataGridViewRow row in dataListado.Rows) { if (Convert.ToBoolean(row.Cells[0].Value)) //Pregunta por el valor de la columna cero del GRID { Codigo = Convert.ToString(row.Cells[1].Value); //Trinca el valor de la columna 1 es decir el Identifica //Envia el codigo al metodo ELIMINAR de la CapaNegocio de Entidad, OjO conviertiendo a Int que es como //es el tipo de campo en la tabla Entidad Rpta = NEntidad.Eliminar(Convert.ToInt32(Codigo)); //Utiliza EQUALS para comparar cadenas de texto en vez de hacerlo a machete : if Rpta == "OK" if (Rpta.Equals("OK")) { this.MensajeOk("Se Eliminó Correctamente el registro"); } else { this.MensajeError(Rpta); } } } //-->Para volver a pintar el GRID con los cambios this.Mostrar(); } } catch (Exception ex) { MessageBox.Show(ex.Message + ex.StackTrace); } }
//-->Botón de GUARDAR //----------------------------------------------------------------------------------------------- private void btnGuardar_Click(object sender, EventArgs e) { try //Control de errores bien.... { //-->VALIDACION DE CAMPOS. NOTA en el curso de C# ví que esto se puede hacer en las propiedades GET/SET //---------------------------------------------------------------------------------------------------- string rpta = ""; if (this.txtNombreEntidad.Text == string.Empty) //Si está vacía y como es un campo obligatorio, pues hay que meterlo { //-->Este metodo lo tengo en este mismo módulo MensajeError("Faltan por indicar datos, serán remarcados"); //--Vamos a indicar el mensaje a mostrar cuando salga el error. errorIcono.SetError(txtNombreEntidad, "Indique un Nombre"); } else //El textBox llega con valor, { if (this.IsNuevo) //Es un alta ?? { //-->Vamos a llamar al Metodo Insertar de la CapaNegocio enviandole los valores para insertar en la bb.dd rpta = NEntidad.Insertar(this.txtNombreEntidad.Text.Trim().ToUpper(), this.txtDeparEntidad.Text.Trim().ToUpper()); //Trim() quitar espacios - ToUpper todo en mayúsculas } else //Es una modificacion PARECE QUE ESTA MODIFICANDO TODOS !!! { //-->Vamos a llamar al Metodo Editar de la CapaNegocio enviandole los valores rpta = NEntidad.Editar(Convert.ToInt32(this.txtIdEntidad.Text), this.txtNombreEntidad.Text.Trim().ToUpper(), this.txtDeparEntidad.Text.Trim().ToUpper()); } //-->Ahora vamos a ver si la operación tuvo éxito o no, el "OK" que estamos poniendo aquí es el que está // indicado en la CAPADATOS en los metodos // Insertar y Editar de esta forma : rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro"; // // Por eso pongo OK sino pondría lo que tuviera puesto... if (rpta.Equals("OK")) //Comparando cadenas con : Equals() { if (this.IsNuevo) { this.MensajeOk("Se Insertó de forma correcta el registro"); } else { this.MensajeOk("Se Actualizó de forma correcta el registro"); } } else //Si no han tenido éxito la inserción o modificacion ERROR { //-->Vamos a enviar al error el valor de rpta que va a ser lo que tengo puesto en la CAPADATOS this.MensajeError(rpta); } //Borra la pelotilla del error si estuviera errorIcono.Clear(); //->Una vez insertado el registro dejamos las variables como estaban. this.IsNuevo = false; this.IsEditar = false; this.Botones(); this.Limpiar(); this.Mostrar(); } } catch (Exception ex) { MessageBox.Show(ex.Message + ex.StackTrace); } }