Sie sind auf Seite 1von 9

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005

Mantenimiento de una Tabla y uso de Directorios.


Presentacin del Caso a Estudiar
Captulo IV Mantenimiento de una Tabla y uso de directorios Microsoft SQL Server y Microsoft Visual Studio 2005 cuenta con una tcnica llamada Objetivos: ADO.NET, es la versin evolucionada de ADO. Mantenimiento de una Tabla. Es mucho ms confiable y robusto, ADO.Net Utilizacin de las Sentencias Insert into, Delete, trabaja en modo conectado y desconectado. Update. Es mucho ms sencillo programar en este Utilizacin de la Objeto SqlDataAdapter. entorno. Navegacin y edicin de registros en modo desconectado Utilizacin de Clase SqlCommand. Utilizacin de la Clase SqlDataReader. Utilizacin de la sentencia SQL (Uso de funciones). Utilizacin del Objeto DataSet y DataTable.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005

'se declara 4 variables Private _cod As Integer Private _nombre As String Private _telefono As String Private _logo As String 'se crea una propiedad de tipo Integer Public Property codigo() As Integer Get 'retorna la variable a asignar a

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 'la propiedad Return _cod End Get Set(ByVal value As Integer) 'la variable asignada a la 'propiedad toma un valor _cod = value End Set End Property 'se crea una propiedad de tipo String Public Property nombre() As String Get 'retorna la variable a asignar a 'la propiedad Return _nombre End Get Set(ByVal value As String) 'la variable asignada a la 'propiedad toma un valor _nombre = value End Set End Property 'se crea una propiedad de tipo String Public Property telefono() As String Get 'retorna la variable a asignar a 'la propiedad Return _telefono End Get Set(ByVal value As String) 'la variable asignada a la 'propiedad toma un valor _telefono = value End Set End Property 'se crea una propiedad de tipo String Public Property logo() As String Get 'retorna la variable a asignar a 'la propiedad Return _logo End Get Set(ByVal value As String) 'la variable asignada a la 'propiedad toma un valor _logo = value End Set End Property 'se crea un constructor Public Sub New()

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 MyBase.New() End Sub Public Sub New(ByVal ncod As Integer, ByVal nnombre As String, ByVal ntelefono As String, ByVal nlogo As String) _cod = ncod _nombre = nnombre _telefono = ntelefono _logo = nlogo End Sub 'se genera un destructor Public Sub disponse() codigo = Nothing nombre = Nothing telefono = Nothing logo = Nothing End Sub Capa Operaciones Imports System.Data.SqlClient Imports Capa_Entidades Imports Capa_Conexion Inherits Clase_Empresa_Entidades 'Se declara una variable de tipo datatable Dim dt As New DataTable 'se declara una variable de tipo Clase_Conexion Dim con As New Clase_Conexion Dim ent As New Clase_Ingreso_Entidades Dim dr As SqlDataReader 'se declara una variable de tipo SqlTransaction Dim trx As SqlTransaction Public Function Lista_Empresa() As DataTable 'Se utiliza el try/catch, para el tratamiento de errores Try 'se declara una variable de tipo SqlCommand 'Esta variable contiene el procedimiento almacenado y la cadena de conexion Dim cmd As New SqlCommand("Sp_Lista_Empresa", con.cn) 'se declara una variable de tipo SqlDataAdapter Dim da As New SqlDataAdapter 'se selecciona el commando da.SelectCommand = cmd 'se limpia el datatable dt.Clear() 'Se llena el dataset da.Fill(dt) Catch ex As Exception 'Throw captura el error, producida por el Script Throw ex End Try 'retorna un datatable Return dt

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 End Function Public Function Ingresar_Empresa(ByVal ent_Empresa As Clase_Empresa_Entidades) As Boolean 'se declara un variable de tipo SqlCommand esta variable contiene el 'nombre del procedimiento almacenado, seguido de la funcion de conexion Dim cmd As New SqlCommand("Sp_Insertar_Empresa", con.cn) 'se utiliza el try/catch, para realizar el tratamiento de errores Try 'se abre la variable de conexion con.conectar() 'se iguala la variable de tipo SqlTransaction, a la variable de conexion 'Esta variable de conexion indica que ha empezado una transaccion trx = con.cn.BeginTransaction 'se utiliza un with With cmd 'se utiliza la propiedad Transaction y se iguala a la variable de 'tipo SqlTransaction .Transaction = trx 'se utiliza la propiedad CommandType, para indicar el tipo de objeto 'trabajara el sqlcommand, este caso se indica que es un StoreProcedure .CommandType = CommandType.StoredProcedure 'se utiliza la propiedad parameters - AddWithValue, para agregar un parametro 'al sqlcommand, este define que se agregare un parametro y una propiedad .Parameters.AddWithValue("@nombre", ent_Empresa.nombre) .Parameters.AddWithValue("@telefono", ent_Empresa.telefono) .Parameters.AddWithValue("@logo", ent_Empresa.logo) 'se ejecuta la sentecnia sql utilizando el ExecuteNonQuery .ExecuteNonQuery() End With MsgBox("Se inSerto Correctamente") 'Commit se ejecuta en caso de que no ocurra algun error finaliza la transaccion trx.Commit() Catch ex As Exception 'Rollback, se ejecuta en caso de que ocurra algun error , deshace la transaccion trx.Rollback() 'Throw captura el error, producida por el Script Throw ex Finally 'se cierra la variable de conexion con.desconectar() 'se libera el sqlcommand cmd.Dispose() End Try End Function Public Function Eliminar_empresa(ByVal ent_Empresa As Clase_Empresa_Entidades) As Boolean 'se declara un variable de tipo SqlCommand esta variable contiene el 'nombre del procedimiento almacenado, seguido de la variable de conexion Dim cmd As New SqlCommand("Sp_Eliminar_Empresa", con.cn) 'se utiliza el try/catch, para realizar el tratamiento de errores Try 'se abre la variable de conexion con.conectar() 'se iguala la variable de tipo SqlTransaction, a la variable de conexion 'Esta variable de conexion indica que ha empezado una transaccion

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 trx = con.cn.BeginTransaction 'se utiliza un with With cmd 'se utiliza la propiedad Transaction y se iguala a la variable de 'tipo SqlTransaction .Transaction = trx 'se utiliza la propiedad CommandType, para indicar el tipo de objeto 'trabajara el sqlcommand, este caso se indica que es un StoreProcedure .CommandType = CommandType.StoredProcedure 'se utiliza la propiedad parameters - AddWithValue, para agregar un parametro 'al sqlcommand, este define que se agregare un parametro y una propiedad .Parameters.AddWithValue("@nombre", ent_Empresa.nombre) 'se ejecuta la sentecnia sql utilizando el ExecuteNonQuery .ExecuteNonQuery() End With 'Commit se ejecuta en caso de que no ocurra algun error finaliza la transaccion trx.Commit() Catch ex As Exception 'Rollback, se ejecuta en caso de que ocurra algun error , deshace la transaccion trx.Rollback() 'Throw captura el error, producida por el Script Throw ex Finally 'se cierra la variable de conexion con.desconectar() 'se libera el sqlcommand cmd.Dispose() 'se libera el SqlTransaction trx.Dispose() End Try End Function Public Sub Mostrar_Empresa(ByVal Fila As Integer, ByVal ent_empresa As Clase_Empresa_Entidades) 'se declara un datarow, este datarow es igual a la tabla 'seguido de la propiedad row y dentro de ella se indica la posicion de la fila Dim dr As DataRow = Lista_Empresa.Rows(Fila) 'cada fila es igual a una propiedad ent_empresa.codigo = dr("IdCompaaEnvos") ent_empresa.nombre = dr("NombreCompaa") ent_empresa.telefono = dr("Telfono") ent_empresa.logo = dr("Logo") End Sub Capa Interfaz Imports Capa_Entidades Imports Capa_Operaciones Imports System.IO Procedimiento mostrarTabla Sub mostrarTabla() Me.DataGridView1.DataSource = opEmpresa.Lista_Empresa() End Sub

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 Procedimiento mostrar Sub mostrar(ByVal i As Integer) Try opEmpresa.Mostrar_Empresa(i, ent_Empresa) Me.txtcodigo.Text = ent_Empresa.codigo Me.txtnombre.Text = ent_Empresa.nombre Me.txtTelefono.Text = ent_Empresa.telefono PictureBox1.Image = Image.FromFile(ent_Empresa.logo) Catch ex As Exception MsgBox("No hay Registros en la Tabla" & Chr(13) & ex.Message) End Try End Sub Evento load del formulario Try If Directory.Exists("c:\fotos\") = False Then 'Si no Existiese procederemos a Crear Dicha Carpeta a la Cual Llamaremos FOTOS. Directory.CreateDirectory("c:\fotos\") End If 'se deshabilita el boton Insertar btnInsertar.Enabled = False mostrarTabla() opEmpresa.Mostrar_Empresa(0, ent_Empresa) Me.txtnombre.Text = ent_Empresa.nombre Me.txtTelefono.Text = ent_Empresa.telefono Me.PictureBox1.Image = Image.FromFile(ent_Empresa.logo) Catch ex As Exception MsgBox("No hay registros en esta Tabla") End Try Control pictureBox evento Clic 'Procederemos a Crear el Objeto de Cuadro de Dialogo el cual permitir mostrar la ventana de 'bsqueda de las Imgenes que vamos a mostrar Dim op As New OpenFileDialog 'Luego Procederemos a asignarle el titulo de la ventana, asi como el filtro , etc With op .Title = "Seleccione una Imagen...." .InitialDirectory = "c:\" .Filter = "Imagenes JPG|*.jpg" 'Luego procedemos a llamarlo con su metodo showDialog .ShowDialog() 'y verifico si la cantidad de la ruta de la imagen para poder mostrar un mensaje de advertencia If Len(.FileName) = 0 Then MsgBox("Seleccionar una Foto", MsgBoxStyle.Exclamation, "Aviso") PictureBox1.Image = Nothing Else 'de lo contrario procederemos a cargar a la imagen en el picturebox ruta = .FileName PictureBox1.Image = Image.FromFile(.FileName) End If op.Dispose() Captulo IV Mantenimiento de una Tabla y uso de directorios

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 End With Boton nuevo 'se se habilita el boton Insertar btnInsertar.Enabled = True 'se deshabilita el boton Nuevo btnNuevo.Enabled = False 'Se limpia los controles Me.txtcodigo.Clear() Me.txtnombre.Clear() Me.txtTelefono.Clear() Me.PictureBox1.Image = Nothing Boton insertar Try ent_Empresa.nombre = Me.txtnombre.Text ent_Empresa.telefono = Me.txtTelefono.Text Dim nruta As String nruta = "C:\fotos\" + txtnombre.Text + Mid(ruta, ruta.IndexOf(".") + 1, 4) 'luego procedemos a copiar a la imagen a la carpeta indicada File.Copy(ruta, nruta, True) ent_Empresa.logo = nruta opEmpresa.Ingresar_Empresa(ent_Empresa) mostrarTabla() Catch ex As Exception MsgBox(ex.Message) Finally 'se deshabilita el boton Insertar btnInsertar.Enabled = False 'se se habilita el boton Nuevo btnNuevo.Enabled = True 'Se libera la clase Empresa opEmpresa.disponse() End Try Boton Eliminar Try ent_Empresa.nombre = Me.txtnombre.Text opEmpresa.Eliminar_empresa(ent_Empresa) mostrarTabla() Catch ex As Exception MsgBox(ex.Message) Finally 'Se libera la clase Empresa opEmpresa.disponse() End Try Boton siguiente pos += 1 'Verificamos si nuestra variable sobrepaso los ndices de los Registros If pos >= opEmpresa.Lista_Empresa.Rows.Count Then

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios

Desarrollo de un Sistema de Facturacin con Visual Studio 2005 y SQL Server 2005 pos = opEmpresa.Lista_Empresa.Rows.Count - 1 End If 'llamamos al procedimiento mostrar para poder Mostrar el Registro que se Encuentra en Dicha 'ubicacin mostrar(pos) boton ultimo 'Establecemos la Posicin del Origen al final de Todos los Registros pos = opEmpresa.Lista_Empresa.Rows.Count - 1 'llamamos al procedimiento mostrar para poder Mostrar el Registro que se Encuentra en Dicha 'ubicacin mostrar(pos)

boton anterior 'Disminuimos la Posicin Actual en la que se encuentra el origen de datos pos -= 1 'Verificamos si nuestra variable sobrepaso los ndices de los Registros If pos < 0 Then pos = 0 End If 'llamamos al procedimiento mostrar para poder Mostrar el Registro que se Encuentra en Dicha 'ubicacin mostrar(pos) boton primero 'Establecemos la Posicin del Origen al final de Todos los Registros pos = 0 ''llamamos al procedimiento mostrar para poder Mostrar el Registro que se Encuentra en Dicha 'ubicacin mostrar(pos)

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo IV Mantenimiento de una Tabla y uso de directorios