• Save
Guia no3 ado.net
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
577
On Slideshare
577
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
2
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SERVICIO NACIONAL DE APRENDIZAJE – SENAPROGRAMA DE FORMACION: Análisis Y Desarrollo De Sistemas De Información GUÍA DE LABORATORIO N° 03OBJETIVOS:• Crear aplicaciones para actualizar y/o mantenimiento de tablas, realizando la misma sin el asistente o añadiendoobjetos, todo con código para evitar las propiedades de enlace y trabajar en un ambiente desconectado1. ENTORNO INTEGRADO DE DESARROLLO• Proceda a ingresar Visual Studio .NET y realice lo siguiente:• Deberá Abrir la solución realizada en la práctica anterior (SisVentas)2. CREACION DE FORMULARIO DE Mantenimiento de Empleados (frmActualizarEmpleado.vb)2.1. Agregue un nuevo formulario a su proyecto y guárdelo con el nombre de frmActualizarEmpleado.vb2.2. Proceda a agregar los siguientes objetos según se observa a continuación: Esquema general de la estructura desconectada de datosTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 2. 2.3. Agregando los botones del ToolStrip “Barra de Herramientas” para actualización y Desplazamiento • Para ello deberá agregar un componente ToolStrip • Luego haga clic derecho sobre el y seleccione Editar Elementos… • Nos visualizará la Ventana siguiente, en ella deberás agregar los elementos “miembros del ToolStrip”, para ello solo deberás hacer clic en el botón Agregar cuantas veces sea necesarios según la imagen. • Una vez que haz agregado todos los miembros del ToolStrip, procede a establecer las propiedades • Name, ToolTiptext e Image para c/u de los elementos. • El Name a establecer a cada elemento es el que se aprecia en la imagen • 2.4. Ahora procederemos a establecer las propiedades de los demás objetosTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 3. 2.4. Ahora procederemos a establecer las propiedades de los demás objetos Objeto Propiedad Valor Asignado Form1 Name frmActualizarEmpleado BackgroundImage Haga clic en … y Seleccione la imagen que Ud. Desee Icon Haga clic en … y busque un icono de su agrado Startposition CenterScreen Label3, label4.... Text Agregar los textos respectivos en cada Etiqueta TextBox1 Name TxtCodEmp TextBox2 Name TxtNomEmp TextBox3 Name TxtApeEmp TextBox4 Name TxtDirEmp GroupBox2 Name grbsexo Text Sexo RadioButton1 Name RbtMasculino Text Masculino RadioButton2 Name RbtFemenino Text Femenino TextBox5 Name TxtTelEmp Combo1 Name CboCargo Text Button1 Name btnNuevoCargo Text Nuevo Cargo… Label1 Name LblActivo TextBox6 Name txtObservacion Button2 Name BtnAgregarFoto Text Agregar Foto… Label10 Name lblRutaFotoTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 4. 2.5. Establecer el tamaño adecuado a cada control ú objeto que esta dentro del formulario.2.6. A todas las etiquetas establecer la propiedad Autosize = True3. CREAR PROCEDIMIENTOS ALMACENADOS (ABRIR EL ANALIZADOR DE CONSULTAS)Ingresar al Analizador de Consultas y Crear los siguientes Procedimientos Almacenados de mantenimientode Datos:Procedimiento para Insertar Registros:CREATE PROCEDURE AgregarEmpleado(@codemp varchar(5),@nomemp varchar(20),@apeemp varchar(20),@diremp varchar(25),@sexemp bit,@telemp varchar(8),@codcar varchar(5),@activo bit,@observacion varchar(80),@foto varchar(50))ASbegin transactionINSERT EMPLEADO(codemp,nomemp,apeemp,diremp,sexemp,telemp,codcar,activo,observacion,foto)VALUES(@codemp,@nomemp,@apeemp,@diremp,@sexemp,@telemp,@codcar,@activo,@observacion,@foto)if @@error=0commit transactionelserollback transactionPara agregarlo a la BD: Sombree el Procedimiento y pulse F5, o clic en el botón ejecutar.Procedimiento para Desactivar un Empleado:CREATE PROCEDURE DesactivaEmpleado(@codemp varchar(5),@activo bit)ASBEGIN TRANSACTIONUPDATE EMPLEADOSETcodemp=@codemp,activo=@activoWHERE codemp=@codempIF @@ERROR=0COMMIT TRANSACTIONELSEROLLBACK TRANSACTIONTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 5. Procedimiento para Eliminar Registros: (Sólo de referencia)CREATE PROCEDURE EliminarEmpleado@codemp varchar(5)ASBEGIN TRANSACTIONDELETE FROM EMPLEADO WHERE codemp=@codempIF @@ERROR=0COMMIT TRANSACTIONELSEROLLBACK TRANSACTIONProcedimiento para Modificar Registros :CREATE PROCEDURE ModificarEmpleado(@codemp varchar(5),@nomemp varchar(20),@apeemp varchar(20),@diremp varchar(25),@sexemp bit,@telemp varchar(8),@codcar varchar(5),@activo bit,@observacion varchar(100),@foto varchar(50))ASBEGIN TRANSACTIONUPDATE EMPLEADOSETcodemp=@codemp,nomemp=@nomemp,apeemp=@apeemp,diremp=@diremp,sexemp=@sexemp,telemp=@telemp,codcar=@codcar,activo=@activo,observacion=@observacion,foto=@fotoWHERE codemp=@codempIF @@ERROR=0COMMIT TRANSACTIONELSEROLLBACK TRANSACTIONTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 6. 4. CODIFICACIÓN DEL FORMULARIO DE ACTUALIZACIÓN DE EMPLEADOSNo olvide que para este formulario solo se trabaja con Procedimientos Almacenados para realizar elMantenimiento de los registros de Empleados.AHORA PROCEDEREMOS A ESCRIBIR EL CODIGO CORRESPONDIENTE:Agregar la Biblioteca de Clases SQLClient: Sirve para poder utilizar los objetos SQLconnection, SqlCommand,SqlDataAdapterBiblioteca de Clase:Option Compare TextImports System.Data.SqlClientImports System.DataEn la Sección de Declaraciones Generales escriba:Dim dacargo As SqlDataAdapterDim objDataAdapter As SqlDataAdapterDim objDataSet As New DataSetDim objDataRow As DataRowDim posicion, flag, resultado As IntegerPrivate Sub frmActualizarEmpleado_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.LoadConexion.Open()objDataAdapter = New SqlDataAdapter("SELECT * FROM EMPLEADO WHEREactivo=1",Conexion)objDataAdapter.Fill(objDataSet, "EMPLEADO")Conexion.Close()llenarcombos(False)posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1)CargarDatos()lblRutaFoto.Visible = FalseHabilitarControles(False)HabilitarBotones(True)Estableciendo etiquetas a las cajastxtCodEmp.Tag = "Código" : txtNomEmp.Tag = "Nombres"txtApeEmp.Tag = "Apellidos" : txtDirEmp.Tag = "dirección"txtTelEmp.Tag = "Teléfono" : txtObservacion.Tag = "Observacion"End SubProcedimientos de UsuarioPrivate Sub llenarcombos(ByVal cargo As Boolean)Conexion.Open()desconectarcombos()dacargo = New SqlDataAdapter("SELECT * FROM cargo", ModConexion.Conexion)If cargo = False Thendacargo.Fill(objDataSet, "cargo")ElseobjDataSet.Tables("cargo").Clear()dacargo.Fill(objDataSet, "cargo")cargo = FalseEnd IfConexion.Close()cboCargo.DataBindings.Add(NewSystem.Windows.Forms.Binding("SelectedValue",objDataSet, "Empleado.codcar"))cboCargo.DataSource = Me.objDataSet.Tables("Cargo")cboCargo.DisplayMember = "descar"Tomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 7. cboCargo.ValueMember = "codcar"cboCargo.DropDownStyle = ComboBoxStyle.DropDownList si es que se ha agregado un nuevo cargo, lo selecionamosIf cargo = False Then cboCargo.SelectedIndex = cboCargo.Items.Count - 1End SubPrivate Sub CargarDatos()Dim valor As BooleanTryobjDataRow = objDataSet.Tables("EMPLEADO").Rows(posicion)txtCodEmp.Text = objDataRow("codemp")txtNomEmp.Text = objDataRow("nomemp")txtApeEmp.Text = objDataRow("apeemp")txtDirEmp.Text = objDataRow("diremp")valor = objDataRow("sexemp")If valor ThenrbtMasculino.Checked = TruerbtFemenino.Checked = FalseElserbtMasculino.Checked = FalserbtFemenino.Checked = TrueEnd IftxtTelEmp.Text = objDataRow("telemp")cboCargo.SelectedValue = objDataRow("codcar")txtObservacion.Text = objDataRow("observacion").ToStringIf objDataRow("foto").ToString = Nothing ThenPictureBox1.Image = NothinglblRutaFoto.Text = NothingElselblRutaFoto.Text = objDataRow("foto")End IfIf objDataRow("activo") = True ThenlblActivo.Text = "Activo" : lblActivo.ForeColor = Color.BlueEnd ifIf objDataRow("activo") = False ThenlblActivo.Text = "Inactivo" : lblActivo.ForeColor = Color.RedEnd iftslRegistro.Text = "Registro: " & posicion + 1 & " de " & _objDataSet.Tables("EMPLEADO").Rows.Countactualizafoto()Catch exc As ExceptionMessageBox.Show(exc.Message)End TryEnd SubPrivate Sub HabilitarControles(ByVal est As Boolean)Dim ctrl As ControlFor Each ctrl In Me.ControlsIf TypeOf ctrl Is TextBox Then ctrl.Enabled = estNexttxtCodEmp.ReadOnly = TruecboCargo.Enabled = estgrbSexo.Enabled = estEnd SubPrivate Sub HabilitarBotones(ByVal est As Boolean)Dim oitem As Windows.Forms.ToolStripItemFor Each oitem In ToolStrip1.ItemsTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 8. If TypeOf oitem Is ToolStripButton Thenoitem.Enabled = estEnd IfNexttsbGuardar.Enabled = Not esttsbCancelar.Enabled = Not estbtnAgregarFoto.Visible = Not estbtnNuevoCargo.Visible = Not estEnd SubFunction verificavacios() As BooleanDim objetos As ObjectFor Each objetos In Me.ControlsIf TypeOf objetos Is TextBox ThenIf objetos.name <> "txtTelEmp" And objetos.name <> "txtObservacion" Andobjetos.TextLength = 0 ThenMsgBox("Debe ingresar: " & objetos.tag)verificavacios = TrueExit FunctionEnd IfEnd IfNextIf cboCargo.SelectedIndex < 0 ThenMsgBox("Debe seleccionar un cargo")verificavacios = TrueEnd IfEnd FunctionPrivate Sub GeneraCodigo()Dim codi As StringDim cmd As New SqlCommand("select max(codemp) from empleado",Conexion)Conexion.Open()codi = cmd.ExecuteScalarConexion.Close()Me.txtCodEmp.Text = Format(Val(codi) + 1, "00000")End SubPrivate Sub desconectarcombos()cboCargo.DataBindings.Clear()End SubPrivate Sub LimpiarControles()LimpiarTextBox(Me)PictureBox1.Image = NothingEnd Sub‘ IMPORTANTE: ESTE PROC. DEBE SER CREADO EN EL MÓDULOPublic Sub LimpiarTextBox(ByVal ofrm As Form)For Each oControl As Control In ofrm.ControlsIf TypeOf oControl Is TextBox ThenoControl.Text = ""End IfNextEnd SubPrivate Sub Desplazar(ByVal op As Integer)Select Case opCase 1posicion = 0CargarDatos()Case 2Tomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 9. If posicion = 0 ThenMessageBox.Show("Primer Registro", "", 0, MessageBoxIcon.Information)Elseposicion -= 1CargarDatos()End IfCase 3If posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1) ThenMessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information)Elseposicion += 1CargarDatos()End IfCase 4posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1)CargarDatos()End SelectEnd SubPrivate Sub actualizafoto()Dim mifoto As BitmapIf objDataRow("foto").ToString = Nothing ThenPictureBox1.Image = NothingElsemifoto = New Bitmap(Me.lblRutaFoto.Text)PictureBox1.Image = CType(mifoto, Image)End IfEnd SubPrivate Sub AgregaCargo(ByVal codi As String, ByVal nombre As String)Agregando el nuevo registro a la tabla cargoDim objcomando As New SqlCommand("INSERT INTO Cargo (codcar,descar) VALUES(@codcar,@descar)",Conexion)Parámetrosobjcomando.Parameters.Add(New SqlParameter("@codcar", SqlDbType.VarChar))objcomando.Parameters("@codcar").Value = codiobjcomando.Parameters.Add(New SqlParameter("@descar", SqlDbType.VarChar))objcomando.Parameters("@descar").Value = nombreConexion.Open()objcomando.ExecuteNonQuery()ModConexion.Conexion.Close()llenarcombos(True)End SubPrivate Sub Editar()flag = 2HabilitarControles(True)HabilitarBotones(False)txtNomEmp.Focus()End SubPrivate Sub Actualizar()Para actualizar el DataSetobjDataSet.Clear()objDataAdapter.Fill(objDataSet, "EMPLEADO")End SubPrivate Sub Nuevo()flag = 1lblRutaFoto.Text = NothingTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 10. HabilitarControles(True)HabilitarBotones(False)LimpiarControles()GeneraCodigo()End SubPrivate Sub Cancelar()Conexion.Open()objDataSet.RejectChanges()Conexion.Close()HabilitarControles(False)HabilitarBotones(True)Desplazar(4)End SubPrivate Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e AsSystem.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClickedSelect Case e.ClickedItem.Name ActualizaciónCase "tsbnuevo" Botón NuevoNuevo()Case "tsbguardar" Botón GuardarGuardar()Case "tsbeditar" Botón EditarEditar()Case "tsbcancelar" Botón CancelarCancelar()Case "tsbeliminar" Botón Desactivar EmpleadoDim rpta As MsgBoxResultrpta = MsgBox("Esta seguro que desea Desactivar Al Empleado :" & _Chr(13) & Chr(10) & txtCodEmp.Text & " - " & txtNomEmp.Text & " " & _txtApeEmp.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación")If rpta = vbYes Then DesactivaEmpleado(txtCodEmp.Text, 0)Case "tsbsalir" Botón SalirMe.Close() DesplazamientoCase "tsbprimero" Ir a al PrimeroDesplazar(1)Case "tsbanterior" Ir al AnteriorDesplazar(2)Case "tsbsiguiente" Ir al SiguienteDesplazar(3)Case "tsbultimo" Ir al ÚltimoDesplazar(4)End SelectEnd SubPrivate Sub Guardar()If verificavacios() = True Then Exit SubDim objComando As New SqlCommandDim oper As String, valor, activo As BooleanobjComando.Connection = ModConexion.ConexionobjComando.CommandType = CommandType.StoredProcedureIf flag = 1 Then AgregarobjComando.CommandText = "AgregarEmpleado"oper = " insertados : "Else EditarobjComando.CommandText = "modificarEmpleado"Tomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 11. oper = " modificados : "End IfTryAgregando ParametrosobjComando.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@nomemp", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@apeemp", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@diremp", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@sexemp", SqlDbType.Bit))objComando.Parameters.Add(New SqlParameter("@telemp", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@codcar", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@activo", SqlDbType.Bit))objComando.Parameters.Add(New SqlParameter("@observacion", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@foto", SqlDbType.VarChar))asignando valores a parametrosIf rbtMasculino.Checked = True Thenvalor = TrueElsevalor = FalseEnd Ifactivo = True Todos los empleados nuevos son activos, ¿activar un empleado?objComando.Parameters("@codemp").Value = txtCodEmp.TextobjComando.Parameters("@nomemp").Value = txtNomEmp.TextobjComando.Parameters("@apeemp").Value = txtApeEmp.TextobjComando.Parameters("@diremp").Value = txtDirEmp.TextobjComando.Parameters("@sexemp").Value = valorobjComando.Parameters("@telemp").Value = txtTelEmp.TextobjComando.Parameters("@codcar").Value = cboCargo.SelectedValueobjComando.Parameters("@activo").Value = activoobjComando.Parameters("@observacion").Value = txtObservacion.TextobjComando.Parameters("@foto").Value = lblRutaFoto.TextConexion.Open()resultado = objComando.ExecuteNonQueryActualizar()Conexion.Close()posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1)MessageBox.Show("Registros " & oper & resultado, "", 0,MessageBoxIcon.Information)Catch exc As ExceptionMessageBox.Show(exc.Message)End Tryllenarcombos(False)Desplazar(4)HabilitarControles(False)HabilitarBotones(True)End SubPrivate Sub DesactivaEmpleado(ByVal codi As String, ByVal estado As Boolean)Dim objComando As New SqlCommandobjComando.Connection = ModConexion.ConexionobjComando.CommandType = CommandType.StoredProcedureobjComando.CommandText = "DesactivaEmpleado"TryAgregando ParametrosobjComando.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar))objComando.Parameters.Add(New SqlParameter("@activo", SqlDbType.Bit))Tomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 12. asignando valores a parametrosobjComando.Parameters("@codemp").Value = codiobjComando.Parameters("@activo").Value = estadoConexion.Open()resultado = objComando.ExecuteNonQueryActualizar()Conexion.Close()MessageBox.Show(resultado & " Empleado Desactivado", "", 0,MessageBoxIcon.Information)Desplazar(1)Catch exc As ExceptionMessageBox.Show(exc.Message)End Tryllenarcombos(False)HabilitarControles(False)HabilitarBotones(True)End SubPrivate Sub btnAgregarFoto_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnAgregarFoto.ClickDim mifoto As BitmapDim curfilename As String = ""Dim opendlg As OpenFileDialog = New OpenFileDialogopendlg.Filter = "All Bitmapfiles|*.*"Dim filter As String = opendlg.Filteropendlg.Title = "open a bitmap file"If opendlg.ShowDialog() = Windows.Forms.DialogResult.OK Thencurfilename = opendlg.FileNamelblRutaFoto.Text = curfilenamemifoto = New Bitmap(curfilename)PictureBox1.Image = CType(mifoto, Image)ElseExit SubEnd IfEnd SubPrivate Sub btnNuevoCargo_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnNuevoCargo.ClickGenerando código para el nuevo cargoDim codi As StringDim cmd As New SqlCommand("select max(codcar) from cargo", ModConexion.Conexion)Conexion.Open()codi = cmd.ExecuteScalarcodi = Format(Val(codi) + 1, "00000")Conexion.Close() Solicitando el nombre del nuevo cargoDim nombre As Stringnombre = InputBox("Ingrese Nombre de nuevo cargo:", "Agregando Nuevo Cargo")If nombre.Length < 4 ThenMsgBox("Debe ingresar mínimo 4 caracteres", MsgBoxStyle.Critical, "Error")Exit SubElserpta = MsgBox("Esta seguro que desea agregar el nuevo cargo :" & _Chr(13) & Chr(10) & “codigo: " & codi & Chr(13) & Chr(10) & _"Nombre: " & nombre, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación")If rpta = vbYes ThenAgregaCargo(codi, nombre)Tomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL
  • 13. ElseExit SubEnd IfEnd IfEnd SubPrivate Sub tsbBuscarbasico_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles tsbBuscarbasico.Click, tsbBuscarAvanzado.ClickSelect Case sender.nameCase "tsbbuscarbasico"Dim strDato As StringDim fila As IntegerDim dv As New DataViewstrDato = InputBox("Ingrese codigo del Empleado: ", "Buscar")dv.Table = objDataSet.Tables("Empleado")dv.Sort = "codemp"fila = dv.Find(strDato)If fila = -1 ThenMessageBox.Show("Codigo del Empleado no Existe", "Cuidado")Exit SubEnd Ifposicion = filaCargarDatos()Case "tsbbuscaravanzado"MessageBox.Show("Proximamente será implementado", "Busqueda Avanzada",MessageBoxButtons.OK, MessageBoxIcon.Information)End SelectEnd SubTAREA ENCARGADA: ….. / …… / ………….� En base al presente formulario, proceda a realizar los formularios correspondientes para Clientes, Artículos yCategoría. Así mismo deberá enlazarlos c/u a la opción de Menú que corresponda.� Haga los procedimientos necesarios para poder visualizar a los empleados Inactivos, y poder activar a unode ellos según sea el casoTomado de:Universidad Nacional Jorge Basadre Grohmann - ITEL