Professional Documents
Culture Documents
Seleccionamos la opcin de crear un nuevo proyecto del tipo Smart Device y lo nombramas en este caso "EjemploDataLocal"
Y de ah seleccionamos la opcin de crear un proyecto del tipo Windows Mibile 5.0 Pocket PC SDK.
Nos conectamos a una base de datos, seleccionando la opcin de herramientas, clic en Connect to Database.
Posteriormente muestra la ventana de Add Connection, en donde seleccionamos Create para crear una base de datos para nuestra aplicacin.
En la siguiente ventana especificamos el nombre del archivo de la base de datos de SQL Server Compact.en este caso la base de datos se llama BDEmpleado y esta ubicada en la direccin de C:\User\imelda\Documents\BDEmpleado.
Si no queremos proporcionar contrasea para la base de datos le decimos que si a la siguiente ventana.
Finalmente en el explorador de servidores podemos visualizar que la base de datos este conectada a la aplicacin.
Para crear la tabla ir a la parte de "Explorador de Servidores" y hacer clic derecho en la carpeta que dice "Tabla" y seleccionamos la opcin de "Crear tabla"
Las tablas que se van a crear sern dos la tabla Cargo y la tabla Empleado. La tabla Cargo tendr las siguiente columnas:
Para eso hacemos clic derecho en la tabla Cargo y luego seleccionamos la opcin "Mostrar Datos de Tabla".
Creando Clases Debemos crear la clase que darn soporte al formulario que vamos a crear. Se crearan las siguientes clases: Conexin Cargo Empleado
Asignar nombre a la primera clase conexin, para las otras dos es el mismo procedimiento.
Clase Conexion Public Class Conexion Public cnn As String = "Data Source =" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAs sembly.GetName.CodeBase) + "\BDEmpleado.sdf;" End Class
Clase Cargo Imports System.Data.SqlServerCe Imports System.Data Public Class Cargo Public Function llenarCargo() As DataTable Dim dt As New DataTable Dim sqlcon As New SqlCeConnection sqlcon.ConnectionString = New Conexion().cnn Dim sqlcmd As New SqlCeCommand sqlcmd.Connection = sqlcon sqlcmd.CommandText = "select * from cargo" Dim sqldat As New SqlCeDataAdapter(sqlcmd) sqldat.Fill(dt) Return dt End Function End Class Clase Empleado Imports System.Data.SqlServerCe Imports System.Data Public Class Empleado Private varCodigo As Integer
Private varNombre As String Private varFechaNacimiento As DateTime Private varCodigoCargo As Integer Public Function insertarEmpleado(ByVal emp As Empleado) As String Dim sqlcon As New SqlCeConnection Try sqlcon.ConnectionString = New Conexion().cnn sqlcon.Open() Dim sqlcmd As New SqlCeCommand sqlcmd.Connection = sqlcon sqlcmd.CommandText = "INSERT INTO Empleado(Empleado_Nombre,Empleado_FecNac,Cargo_Codigo) VALUES(?,?,?)" sqlcmd.Parameters.Add("@Empleado_Nombre", SqlDbType.NVarChar, 100).Value = emp.Nombre sqlcmd.Parameters.Add("@Empleado_FecNac", SqlDbType.DateTime).Value = emp.FechaNacimiento sqlcmd.Parameters.Add("@Cargo_Codigo", SqlDbType.Int).Value = emp.CodigoCargo If sqlcmd.ExecuteNonQuery = 1 Then Return "OK" Else Return "No se pudo insertar al Empleado" End If Catch ex As Exception Return ex.Message Finally If sqlcon.State = ConnectionState.Open Then sqlcon.Close() End If End Try End Function
Public Function actualizarEmpleado(ByVal emp As Empleado) As String Dim sqlcon As New SqlCeConnection Try sqlcon.ConnectionString = New Conexion().cnn sqlcon.Open() Dim sqlcmd As New SqlCeCommand sqlcmd.Connection = sqlcon sqlcmd.CommandText = "UPDATE Empleado SET Empleado_Nombre=? ,Empleado_FecNac=?, Cargo_Codigo=? WHERE Empleado_Codigo=?"
sqlcmd.Parameters.Add("@Empleado_Nombre", SqlDbType.NVarChar, 100).Value = emp.Nombre sqlcmd.Parameters.Add("@Empleado_FecNac", SqlDbType.DateTime).Value = emp.FechaNacimiento sqlcmd.Parameters.Add("@Cargo_Codigo", SqlDbType.Int).Value = emp.CodigoCargo sqlcmd.Parameters.Add("@Empleado_Codigo", SqlDbType.Int).Value = emp.Codigo If sqlcmd.ExecuteNonQuery = 1 Then Return "OK" Else Return "No se pudo actualizar al Empleado" End If Catch ex As Exception Return ex.Message Finally If sqlcon.State = ConnectionState.Open Then sqlcon.Close() End If End Try End Function Public Function eliminarEmpleado(ByVal codigoEmp As Integer) As String Dim sqlcon As New SqlCeConnection Try sqlcon.ConnectionString = New Conexion().cnn sqlcon.Open() Dim sqlcmd As New SqlCeCommand sqlcmd.Connection = sqlcon sqlcmd.CommandText = "DELETE FROM Empleado WHERE Empleado_Codigo=?" sqlcmd.Parameters.Add("@Empleado_Codigo", SqlDbType.Int).Value = codigoEmp If sqlcmd.ExecuteNonQuery = 1 Then Return "OK" Else Return "No se pudo eliminar al Empleado" End If Catch ex As Exception Return ex.Message Finally If sqlcon.State = ConnectionState.Open Then
sqlcon.Close() End If End Try End Function Public Function todosEmpleados() As DataTable Dim dt As New DataTable Dim sqlcon As New SqlCeConnection sqlcon.ConnectionString = New Conexion().cnn Dim sqlcmd As New SqlCeCommand sqlcmd.Connection = sqlcon Dim sql As String = "SELECT Empleado.Empleado_Codigo AS Codigo, Empleado.Empleado_Nombre AS Empleado, Empleado.Empleado_FecNac AS FecNac, " & _ "Cargo.Cargo_Nombre AS Cargo, Cargo.Cargo_Codigo as CodigoCargo " & _ "FROM Cargo INNER JOIN " & _ "Empleado ON Cargo.Cargo_Codigo = Empleado.Cargo_Codigo" sqlcmd.CommandText = sql Dim sqldat As New SqlCeDataAdapter(sqlcmd) sqldat.Fill(dt) Return dt End Function Public Property Codigo() As Integer Get Return varCodigo End Get Set(ByVal value As Integer) varCodigo = value End Set End Property Public Property Nombre() As String Get Return varNombre End Get Set(ByVal value As String) varNombre = value End Set End Property Public Property FechaNacimiento() As DateTime
Get Return varFechaNacimiento End Get Set(ByVal value As DateTime) varFechaNacimiento = value End Set End Property Public Property CodigoCargo() As Integer Get Return varCodigoCargo End Get Set(ByVal value As Integer) varCodigoCargo = value End Set End Property End Class
Los nombres de los componentes que se han diseado sern los siguientes:
txtCodigo --> TextBox txtNombre --> TextBox dtpFechaNacimiento --> DateTimePicker cboCargo --> ComboBox btnRegistrar --> Button brnActualizar --> Button btnEliminar --> Button btnLimpiar --> Button
Me.limpiar() Me.dgEmpleado.DataSource = emp.todosEmpleados Else mError(mensaje) End If End Sub Private Sub brnActualizar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles brnActualizar.Click If Me.txtCodigo.Text <> "" Then Dim emp As New Empleado emp.Codigo = CInt(Me.txtCodigo.Text) emp.Nombre = Me.txtNombre.Text.ToUpper emp.FechaNacimiento = Me.dtpFechaNacimiento.Value emp.CodigoCargo = CInt(Me.cboCargo.SelectedValue) Dim mensaje As String = emp.actualizarEmpleado(emp) If mensaje = "OK" Then mOk("Se actualizo al Empleado de forma correcta") Me.limpiar() Me.dgEmpleado.DataSource = emp.todosEmpleados Else mError(mensaje) End If Else mError("Debe de buscar un empleado para actualizar") End If End Sub Private Sub dgEmpleado_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgEmpleado.DoubleClick Dim indice As Integer = Me.dgEmpleado.CurrentCell.RowNumber Dim dt As Data.DataTable = Me.dgEmpleado.DataSource Dim r As Data.DataRow = dt.Rows(indice) Me.txtCodigo.Text = r("Codigo") Me.txtNombre.Text = r("Empleado") Me.dtpFechaNacimiento.Value = r("FecNac") Me.cboCargo.SelectedValue = r("CodigoCargo") Me.TabControl1.SelectedIndex = 0 End Sub Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click Me.limpiar() End Sub Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
If Me.txtCodigo.Text <> "" Then Dim emp As New Empleado Dim mensaje As String = emp.eliminarEmpleado(CInt(Me.txtCodigo.Text)) If mensaje = "OK" Then mOk("Se elimino al Empleado de forma correcta") Me.limpiar() Me.dgEmpleado.DataSource = emp.todosEmpleados Else mError(mensaje) End If Else mError("Debe de buscar un empleado para eliminar") End If End Sub End Class