Programacion 5 capas ----Intoduccion
Muchos quizás buscan este tipo de información en internet y no lo encuentran, aquí en este blog tratare de plasmar la practica en si, de realizar un proyecto en 5 capas, no entrare en detalles en temas teoricos, ya que tratare mostrarles todo lo que aprendi en este proyectoRequerimientos------
1.- Visual net 2010 o 2008
2.- Lenguaje de programacion visual basic en Asp.net
3. enterprise library dependiendo para que version de net vallan a usar
4. AjaxControlToolkit para net 4
5.- Sql server express 2005 o 2008
Programacion 5 capas ----Capa 1 Data
Antes de llegar a este punto tenemos que tener ya lista la base de datos creada, con su tablas, registros,y los store procedures que es con los que se va a trabajar mayormente en el proyecto, en el siguiente enlace podran descargar el codigo para crear su base de datos, practicamente esten todas las tabla foraneas que puedan usar las tablas padres, son cerca de 20 tablas , y cada una de ellas con 9 store procesudures, con los procesos basicos que se pueden manejar en una tabla normal. no he colocado la de las tablas padres.pues es ovbio ques se van a amanejar lo mismo ya sea una tabla de personal, de proveedores ,clientes etc... solo que ya esas tablas se manejaria mas datos a compracion de las tabla foraneas que a lo mucho contienen 4 atributos. no he visto tampoco lo de las transacciones ya que estyo en proceso de aprendizaje y por eso motivo tampoco lo coloco, por lo tanto empezemos de a pocos para ir programando en N capasBase de datos
Base de datos
Paso 1 crear un proyecto en blanco
Paso 2 Crear nuevo proyecto dentro del proyecto en blanco, en nuestro caso crearemos 5 ya que programaremos en 5 capas, comenzando por la capa de datos, capa entidades, capa logica de negocio, capa regla de negocio y la de aplicacion
Paso 3 dentro del projecto Layer_data agregaremos referencia a los archivos que utilizaremos del enterprise library, para ver la referencias arriba del proyecto hay unso iconos elegir, mostrar todos los archivos para que le aparesca la carpeta references y ahi dentro veran que sean agregado las refererencias de los archivos del enterprise libraryPaso 5 empezaremos a colcoar el codigo que usaremos dentro de esta clase
'importaremos las librerias a las que hicimos referencia en nuestro proyecto y que usaremos en esta clase
Imports Microsoft.Practices.EnterpriseLibrary.DataImports System.Data.Common
Public Class HelperDB
Public db As Database = Nothing
Public Sub New()
db = DatabaseFactory.CreateDatabase("cnDataBase")
End Sub
'Crear los Metodos siguientes :
'-ExecuteDataSet
'-ExecuteReader
'-ExecuteScalar
'-ExecuteNomQuery
'x/c Metodo definir 4 sobrecargas
'1era SP
'2da SP y parametros
'3era SP, Transaccion
'4ta SP, Transaccion y Parametros
Public Function ExecuteDataSet(ByVal sp As String) As DataSet
Try
Return db.ExecuteDataSet(sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteDataSet(ByVal sp As String, ByVal ParamArray datos() As Object) As DataSet
Try
Return db.ExecuteDataSet(sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteDataSet(ByVal sp As String, ByVal trans As DbTransaction) As DataSet
Try
Return db.ExecuteDataSet(trans, sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteDataSet(ByVal sp As String, ByVal trans As DbTransaction, ByVal ParamArray datos() As Object) As DataSet
Try
Return db.ExecuteDataSet(trans, sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteReader(ByVal sp As String) As IDataReader
Try
Return db.ExecuteReader(sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteReader(ByVal sp As String, ByVal ParamArray datos() As Object) As IDataReader
Try
Return db.ExecuteReader(sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteReader(ByVal sp As String, ByVal trans As DbTransaction) As IDataReader
Try
Return db.ExecuteReader(trans, sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteReader(ByVal sp As String, ByVal trans As DbTransaction, ByVal ParamArray datos() As Object) As IDataReader
Try
Return db.ExecuteReader(trans, sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteNomQuery(ByVal sp As String) As Integer
Try
Return db.ExecuteNonQuery(sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function ExecuteNomQuery(ByVal sp As String, ByVal ParamArray datos() As Object) As Integer
Try
Return db.ExecuteNonQuery(sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function executenonquery(ByVal sp As String, ByVal trans As DbTransaction) As Integer
Try
Return db.ExecuteNonQuery(trans, sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function executenonquery(ByVal sp As String, ByVal trans As DbTransaction, ByVal ParamArray datos() As Object) As Integer
Try
Return db.ExecuteNonQuery(trans, sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function executescalar(ByVal sp As String) As Integer
Try
Return db.ExecuteScalar(sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function executescalar(ByVal sp As String, ByVal ParamArray datos() As Object) As Integer
Try
Return db.ExecuteScalar(sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function executescalar(ByVal sp As String, ByVal trans As DbTransaction) As Integer
Try
Return db.ExecuteScalar(trans, sp)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function executescalar(ByVal sp As String, ByVal trans As DbTransaction, ByVal ParamArray datos() As Object) As Integer
Try
Return db.ExecuteScalar(trans, sp, datos)
Catch ex As Exception
Throw ex
End Try
End Function
Public Function BeginTransaction() As DbTransaction
Try
Dim cn As DbConnection =
db.CreateConnection
cn.Open()
Return cn.BeginTransaction
'db.CreateConnection().BeginTransaction()
Catch ex As Exception
Throw ex
End Try
End Function
End Class
como les puse en la introduccion no me preocupare en colocar conceptos o teoria ya que estoy colocando solo el codigo de la parte practica, si quieren saber mas detales sobre los metodos o propiedades que se estan usando dentro del codigo del helperdb solo basta con buscar informacion en google .
en esta parte se definen los metodos que seran usados en nuestro proyecto final
Programacion 5 capas ----Capa 2 Entidades
En esta capa vamos a representar las tablas de nuestar base de datos en esta capa para ello empezaremos a hacer lo siguiente
Paso 1 Agregar 2 nuevas carpetas nombrandolas con First y Second, esto se hara tanto en la capa, logica y reglas de negeocio
Paso 2 Una vez creada las carpetas, tenemos que crear dentro de ellas sus clases que van a representar a cada una de las tablas que exiten dentro de la bd, en este caso solo usaremos la carpeta First para rellenar de clases (Tablas) con sus atributos y en la carpeta Second de igual manera solo que sera compartida, si hay la necesidad en el futuro de agregar informacion en esas clases se las colocara, eso lo veremos con mas detalle en la capa logica y reglas de negocio.
Como se hizo mención en la capa de datos, por el momento solo se usará las tablas forareanas de la bd, ya que aun no he avanzado con el mantenimeinto de las tablas padres, pero es casi igual lo que varia es solo la cantidad de datos que se manejan.
Paso 3 Una vez creadas las clases comenzamos a escribir el codigo, usaremos en este caso la clase Idiomas y la clase Estado ya que casi la mayoria de tablas estan relacionadas con la tabla estado, bastara con mostrar ese ejemplo pues en las demas clases ya seria repetitivo el contenido solo varian los atributos a usar
<Serializable()>
Partial Public Class Idioma
'declaramos nuestros atributos estos son los que se veran como titulo o campo, por ejemplo cuando 'mostremos en una grilla el contenido de la tabla, no necesariamente tiene que ser igual a los tributos de la 'base de datos pero , tienen que tener una semejanza, por ejemplo en la atributo codigo en la tabla es 'Cod_idioma
Public Property Codigo As String
Public Property Idioma As String
Public Property Estado As String
Sub New()
End Sub
Sub New(ByVal vCodigo As String, ByVal vIdioma As String, ByVal vEstado As String)
_Codigo = vCodigo
_Idioma = vIdioma
_Estado = vEstado
End Sub
'aqui realizamos la referencia con la clase estado, de forma similar se hara en la clase estado
Private _cod_estado_entity As New Estado
Public Property cod_estado_entity() As Estado
Get
Return _cod_estado_entity
End Get
Set(ByVal value As Estado)
_cod_estado_entity = value
End Set
End Property
End Class
'crearemos esta clase para que los atributos de esta clase puedan ser llamados por medio de esta lista de 'objetos
Public Class IdiomaList
Inherits List(Of Idioma)
End Class
Partial Public Class Estado
'atributos de la clase estado
Public Property Cod_estado() As String
Public Property Estado() As String
Public Sub New()
End Sub
Public Sub New(ByVal vCod_estado As String, ByVal vEstado As String)
_Cod_estado = vCod_estado
_Estado = vEstado
End Sub
'relaciones con las demas clases que usarn la clase estado
Private _paiscollection As New Paislist
Public Property paiscollection() As Paislist
Get
Return _paiscollection
End Get
Set(ByVal value As Paislist)
_paiscollection = value
End Set
End Property
Private _departamentocollection As New DepartamentoList
Public Property departamentocollection As DepartamentoList
Get
Return _departamentocollection
End Get
Set(ByVal value As DepartamentoList)
_departamentocollection = value
End Set
End Property
Private _ProvinciaCollection As New Provincialist
Public Property ProvinciaCollection As Provincialist
Get
Return _ProvinciaCollection
End Get
Set(ByVal value As Provincialist)
_ProvinciaCollection = value
End Set
End Property
Private _Unidad_MedidaCollection As New Unidad_MedidaList
Public Property Unidad_MedidaCollection As Unidad_MedidaList
Get
Return _Unidad_MedidaCollection
End Get
Set(ByVal value As Unidad_MedidaList)
_Unidad_MedidaCollection = value
End Set
End Property
Private _Idiomacollection As New IdiomaList
Public Property Idiomacollection() As IdiomaList
Get
Return _Idiomacollection
End Get
Set(ByVal value As IdiomaList)
_Idiomacollection = value
End Set
End Property
Private _Monedacollection As New Monedalist
Public Property Monedacollection() As Monedalist
Get
Return _Monedacollection
End Get
Set(ByVal value As Monedalist)
_Monedacollection = value
End Set
End Property
Private _Religioncollection As New ReligionList
Public Property Religioncollection() As ReligionList
Get
Return _Religioncollection
End Get
Set(ByVal value As ReligionList)
_Religioncollection = value
End Set
End Property
Private _Areacollection As New AreaList
Public Property Areacollection() As AreaList
Get
Return _Areacollection
End Get
Set(ByVal value As AreaList)
_Areacollection = value
End Set
End Property
Private _documentoidentidadcollection As New Documento_IdentidadList
Public Property documentoidentidadcollection() As Documento_IdentidadList
Get
Return _documentoidentidadcollection
End Get
Set(ByVal value As Documento_IdentidadList)
_documentoidentidadcollection = value
End Set
End Property
Private _sexocollection As New SexoList
Public Property sexocollection() As SexoList
Get
Return _sexocollection
End Get
Set(ByVal value As SexoList)
_sexocollection = value
End Set
End Property
Private _cargocollection As New CargoList
Public Property cargocollection() As CargoList
Get
Return _cargocollection
End Get
Set(ByVal value As CargoList)
_cargocollection = value
End Set
End Property
Private _estadocivilcollection As New EstadoCivilList
Public Property estadocivil() As EstadoCivilList
Get
Return _estadocivilcollection
End Get
Set(ByVal value As EstadoCivilList)
_estadocivilcollection = value
End Set
End Property
Private _gradoinstruccioncollection As New GradoInstruccionList
Public Property gradoinstruccioncollection() As GradoInstruccionList
Get
Return _gradoinstruccioncollection
End Get
Set(ByVal value As GradoInstruccionList)
_gradoinstruccioncollection = value
End Set
End Property
Private _Bancocollection As New BancoList
Public Property Bancocollection() As BancoList
Get
Return _Bancocollection
End Get
Set(ByVal value As BancoList)
_Bancocollection = value
End Set
End Property
Private _cuentabancariacollection As New CuentaBancariaList
Public Property cuentabancariacollection() As CuentaBancariaList
Get
Return _cuentabancariacollection
End Get
Set(ByVal value As CuentaBancariaList)
_cuentabancariacollection = value
End Set
End Property
Private _turnocollection As New TurnoList
Public Property turnocollection() As TurnoList
Get
Return _turnocollection
End Get
Set(ByVal value As TurnoList)
_turnocollection = value
End Set
End Property
Private _localcollection As New LocalList
Public Property localcollection() As LocalList
Get
Return _localcollection
End Get
Set(ByVal value As LocalList)
_localcollection = value
End Set
End Property
End Class
'se listara por medio de esta clase los objetos que contienen en ella
Public Class EstadoList
Inherits List(Of Estado)
End Class
y en la clases secundarias osea en la carpeta Second colocamos el siguiente codigo en cada una de las clases creadas
' cuando colocamos partial lo que hacemos es el de unir ambas clases como si fueran una
Partial Public Class Idioma
End Class
Paso 1 Agregar 2 nuevas carpetas nombrandolas con First y Second, esto se hara tanto en la capa, logica y reglas de negeocio
Paso 2 Una vez creada las carpetas, tenemos que crear dentro de ellas sus clases que van a representar a cada una de las tablas que exiten dentro de la bd, en este caso solo usaremos la carpeta First para rellenar de clases (Tablas) con sus atributos y en la carpeta Second de igual manera solo que sera compartida, si hay la necesidad en el futuro de agregar informacion en esas clases se las colocara, eso lo veremos con mas detalle en la capa logica y reglas de negocio.
Como se hizo mención en la capa de datos, por el momento solo se usará las tablas forareanas de la bd, ya que aun no he avanzado con el mantenimeinto de las tablas padres, pero es casi igual lo que varia es solo la cantidad de datos que se manejan.
Paso 3 Una vez creadas las clases comenzamos a escribir el codigo, usaremos en este caso la clase Idiomas y la clase Estado ya que casi la mayoria de tablas estan relacionadas con la tabla estado, bastara con mostrar ese ejemplo pues en las demas clases ya seria repetitivo el contenido solo varian los atributos a usar
clase Idioma
Partial Public Class Idioma
'declaramos nuestros atributos estos son los que se veran como titulo o campo, por ejemplo cuando 'mostremos en una grilla el contenido de la tabla, no necesariamente tiene que ser igual a los tributos de la 'base de datos pero , tienen que tener una semejanza, por ejemplo en la atributo codigo en la tabla es 'Cod_idioma
Public Property Codigo As String
Public Property Idioma As String
Public Property Estado As String
Sub New()
End Sub
Sub New(ByVal vCodigo As String, ByVal vIdioma As String, ByVal vEstado As String)
_Codigo = vCodigo
_Idioma = vIdioma
_Estado = vEstado
End Sub
'aqui realizamos la referencia con la clase estado, de forma similar se hara en la clase estado
Private _cod_estado_entity As New Estado
Public Property cod_estado_entity() As Estado
Get
Return _cod_estado_entity
End Get
Set(ByVal value As Estado)
_cod_estado_entity = value
End Set
End Property
End Class
'crearemos esta clase para que los atributos de esta clase puedan ser llamados por medio de esta lista de 'objetos
Public Class IdiomaList
Inherits List(Of Idioma)
End Class
Clase Estado
<Serializable()>Partial Public Class Estado
'atributos de la clase estado
Public Property Cod_estado() As String
Public Property Estado() As String
Public Sub New()
End Sub
Public Sub New(ByVal vCod_estado As String, ByVal vEstado As String)
_Cod_estado = vCod_estado
_Estado = vEstado
End Sub
'relaciones con las demas clases que usarn la clase estado
Private _paiscollection As New Paislist
Public Property paiscollection() As Paislist
Get
Return _paiscollection
End Get
Set(ByVal value As Paislist)
_paiscollection = value
End Set
End Property
Private _departamentocollection As New DepartamentoList
Public Property departamentocollection As DepartamentoList
Get
Return _departamentocollection
End Get
Set(ByVal value As DepartamentoList)
_departamentocollection = value
End Set
End Property
Private _ProvinciaCollection As New Provincialist
Public Property ProvinciaCollection As Provincialist
Get
Return _ProvinciaCollection
End Get
Set(ByVal value As Provincialist)
_ProvinciaCollection = value
End Set
End Property
Private _Unidad_MedidaCollection As New Unidad_MedidaList
Public Property Unidad_MedidaCollection As Unidad_MedidaList
Get
Return _Unidad_MedidaCollection
End Get
Set(ByVal value As Unidad_MedidaList)
_Unidad_MedidaCollection = value
End Set
End Property
Private _Idiomacollection As New IdiomaList
Public Property Idiomacollection() As IdiomaList
Get
Return _Idiomacollection
End Get
Set(ByVal value As IdiomaList)
_Idiomacollection = value
End Set
End Property
Private _Monedacollection As New Monedalist
Public Property Monedacollection() As Monedalist
Get
Return _Monedacollection
End Get
Set(ByVal value As Monedalist)
_Monedacollection = value
End Set
End Property
Private _Religioncollection As New ReligionList
Public Property Religioncollection() As ReligionList
Get
Return _Religioncollection
End Get
Set(ByVal value As ReligionList)
_Religioncollection = value
End Set
End Property
Private _Areacollection As New AreaList
Public Property Areacollection() As AreaList
Get
Return _Areacollection
End Get
Set(ByVal value As AreaList)
_Areacollection = value
End Set
End Property
Private _documentoidentidadcollection As New Documento_IdentidadList
Public Property documentoidentidadcollection() As Documento_IdentidadList
Get
Return _documentoidentidadcollection
End Get
Set(ByVal value As Documento_IdentidadList)
_documentoidentidadcollection = value
End Set
End Property
Private _sexocollection As New SexoList
Public Property sexocollection() As SexoList
Get
Return _sexocollection
End Get
Set(ByVal value As SexoList)
_sexocollection = value
End Set
End Property
Private _cargocollection As New CargoList
Public Property cargocollection() As CargoList
Get
Return _cargocollection
End Get
Set(ByVal value As CargoList)
_cargocollection = value
End Set
End Property
Private _estadocivilcollection As New EstadoCivilList
Public Property estadocivil() As EstadoCivilList
Get
Return _estadocivilcollection
End Get
Set(ByVal value As EstadoCivilList)
_estadocivilcollection = value
End Set
End Property
Private _gradoinstruccioncollection As New GradoInstruccionList
Public Property gradoinstruccioncollection() As GradoInstruccionList
Get
Return _gradoinstruccioncollection
End Get
Set(ByVal value As GradoInstruccionList)
_gradoinstruccioncollection = value
End Set
End Property
Private _Bancocollection As New BancoList
Public Property Bancocollection() As BancoList
Get
Return _Bancocollection
End Get
Set(ByVal value As BancoList)
_Bancocollection = value
End Set
End Property
Private _cuentabancariacollection As New CuentaBancariaList
Public Property cuentabancariacollection() As CuentaBancariaList
Get
Return _cuentabancariacollection
End Get
Set(ByVal value As CuentaBancariaList)
_cuentabancariacollection = value
End Set
End Property
Private _turnocollection As New TurnoList
Public Property turnocollection() As TurnoList
Get
Return _turnocollection
End Get
Set(ByVal value As TurnoList)
_turnocollection = value
End Set
End Property
Private _localcollection As New LocalList
Public Property localcollection() As LocalList
Get
Return _localcollection
End Get
Set(ByVal value As LocalList)
_localcollection = value
End Set
End Property
End Class
'se listara por medio de esta clase los objetos que contienen en ella
Public Class EstadoList
Inherits List(Of Estado)
End Class
y en la clases secundarias osea en la carpeta Second colocamos el siguiente codigo en cada una de las clases creadas
' cuando colocamos partial lo que hacemos es el de unir ambas clases como si fueran una
Partial Public Class Idioma
End Class
Programacion 5 capas ----Capa 3 Logica de Negocio
En esta capa desarrolaremos nuestro codigo de los procesos que usarmeos en nuestra aplicacion
Paso 1 ya creda aqui las carpetas First y Second, agregaremos las clases correspondientes para cada entidad
en la primera carpeta usaremos los procesos basicos y en la segunda usaremos los adicionales usaremos la clase IdiomaBl y EstadoBl .....dentro del proyecto Layer_Logic hacemos referencia a los proyectos que tenemos el data y el entity
Imports Layer_Data
Imports Layer_Entity
Imports System.Data.Common
Partial Public Class IdiomaBL
'heredamos los metodos de la clase helperdb
Inherits HelperDB
'llama a todos los datos
Public Function GetAll() As IdiomaList
Try
Dim lista As New IdiomaList
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetAll")
Do While dr.Read
Dim item As New Idioma
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Cod_estado"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'llama solo un dato con respecto a su codigo
Public Function GetOne(ByVal codigo As String) As IdiomaList
Try
Dim lista As New IdiomaList
Dim item As New Idioma
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetOne", param)
If dr.Read Then
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Cod_estado"))
lista.Add(item)
End If
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'ingresa registro en la tabla idioma
Public Sub Insert(ByVal item As Idioma)
Try
Dim param() As String = {item.Codigo, item.Idioma, item.Estado}
Me.ExecuteNomQuery("Usp_Idioma_Insert", param)
Catch ex As Exception
Throw ex
End Try
End Sub
'edita registro
Public Sub Update(ByVal item As Idioma)
Try
Dim param() As String = {item.Codigo, item.Idioma, item.Estado}
Me.ExecuteNomQuery("Usp_Idioma_Update", param)
Catch ex As Exception
Throw ex
End Try
End Sub
'elimina registro borrando el dato d ela bd
Public Sub Delete(ByVal codigo As String)
Try
Dim param() As String = {codigo}
Me.ExecuteNomQuery("Usp_Idioma_Delete", param)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Imports Layer_Entity
Partial Public Class IdiomaBL
'llama a todos los datos mostrando el detalle del campo estado
Public Function GetAll2() As IdiomaList
Try
Dim lista As New IdiomaList
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetAll2")
Do While dr.Read
Dim item As New Idioma
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'llama solo un registro mostrando detalle en campo estado
Public Function GetOne2(ByVal codigo As String) As IdiomaList
Try
Dim lista As New IdiomaList
Dim item As New Idioma
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetOne2", param)
If dr.Read Then
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
End If
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'llama a todos los registros ya sea colocando o no algun parametro de busqueda con detalle en campo estado
Public Function GetOne3(ByVal codigo As String) As IdiomaList
Try
Dim lista As New IdiomaList
Dim item As New Idioma
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetOne3", param)
Do While dr.Read
item = New Idioma
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'actualiza datos poniendo su estado como inactivo (elimina)
Public Sub Update2(ByVal item As Idioma)
Try
Dim param() As String = {item.Codigo}
Me.ExecuteNomQuery("Usp_Idioma_Update2", param)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Imports Layer_Data
Imports Layer_Entity
Imports System.Data.Common
Partial Public Class EstadoBl
Inherits HelperDB
Public Function GetAll() As estadolist
Try
Dim lista As New estadolist
Using dr As IDataReader = Me.ExecuteReader("usp_estado_GetAll")
Do While dr.Read
Dim item As New Estado
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using 'Llama al dispose automaicamente
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
Public Function GetOne(ByVal codigo As String) As EstadoList
Try
Dim lista As New EstadoList
Dim item As New Estado
Dim param() As String = {codigo}
'Dim param(0) As String
'param(0) = codigo
Using dr As IDataReader = Me.ExecuteReader("usp_estado_GetOne", param)
If dr.Read Then
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
End If
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
Public Sub Insert(ByVal item As Estado)
Try
Dim param() As String = {item.Cod_estado, item.Estado}
Me.ExecuteNomQuery("usp_estado_Insert", param)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Sub Update(ByVal item As Estado)
Try
Dim param() As String = {item.Cod_estado, item.Estado}
Me.ExecuteNomQuery("usp_estado_Update", param)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Sub Delete(ByVal codigo As String)
Try
Dim param() As String = {codigo}
Me.ExecuteNomQuery("usp_estado_Delete", param)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Imports Layer_Data
Imports Layer_Entity
Partial Public Class EstadoBL
Public Function GetAll2() As EstadoList
Try
Dim lista As New EstadoList
Using dr As IDataReader = Me.ExecuteReader("Usp_Estado_GetAll2")
Do While dr.Read
Dim item As New Estado
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using 'Llama al dispose automaicamente
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
Public Function GetOne2(ByVal codigo As String) As EstadoList
Try
Dim lista As New EstadoList
Dim item As New Estado
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Estado_GetOne2", param)
Do While dr.Read
item = New Estado
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
End Class
Paso 1 ya creda aqui las carpetas First y Second, agregaremos las clases correspondientes para cada entidad
en la primera carpeta usaremos los procesos basicos y en la segunda usaremos los adicionales usaremos la clase IdiomaBl y EstadoBl .....dentro del proyecto Layer_Logic hacemos referencia a los proyectos que tenemos el data y el entity
Clase IdiomaBl
Carpeta FirstImports Layer_Data
Imports Layer_Entity
Imports System.Data.Common
Partial Public Class IdiomaBL
'heredamos los metodos de la clase helperdb
Inherits HelperDB
'llama a todos los datos
Public Function GetAll() As IdiomaList
Try
Dim lista As New IdiomaList
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetAll")
Do While dr.Read
Dim item As New Idioma
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Cod_estado"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'llama solo un dato con respecto a su codigo
Public Function GetOne(ByVal codigo As String) As IdiomaList
Try
Dim lista As New IdiomaList
Dim item As New Idioma
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetOne", param)
If dr.Read Then
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Cod_estado"))
lista.Add(item)
End If
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'ingresa registro en la tabla idioma
Public Sub Insert(ByVal item As Idioma)
Try
Dim param() As String = {item.Codigo, item.Idioma, item.Estado}
Me.ExecuteNomQuery("Usp_Idioma_Insert", param)
Catch ex As Exception
Throw ex
End Try
End Sub
'edita registro
Public Sub Update(ByVal item As Idioma)
Try
Dim param() As String = {item.Codigo, item.Idioma, item.Estado}
Me.ExecuteNomQuery("Usp_Idioma_Update", param)
Catch ex As Exception
Throw ex
End Try
End Sub
'elimina registro borrando el dato d ela bd
Public Sub Delete(ByVal codigo As String)
Try
Dim param() As String = {codigo}
Me.ExecuteNomQuery("Usp_Idioma_Delete", param)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Carpeta Second
Clase idiomaBl
Imports Layer_DataImports Layer_Entity
Partial Public Class IdiomaBL
'llama a todos los datos mostrando el detalle del campo estado
Public Function GetAll2() As IdiomaList
Try
Dim lista As New IdiomaList
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetAll2")
Do While dr.Read
Dim item As New Idioma
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'llama solo un registro mostrando detalle en campo estado
Public Function GetOne2(ByVal codigo As String) As IdiomaList
Try
Dim lista As New IdiomaList
Dim item As New Idioma
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetOne2", param)
If dr.Read Then
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
End If
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'llama a todos los registros ya sea colocando o no algun parametro de busqueda con detalle en campo estado
Public Function GetOne3(ByVal codigo As String) As IdiomaList
Try
Dim lista As New IdiomaList
Dim item As New Idioma
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Idioma_GetOne3", param)
Do While dr.Read
item = New Idioma
item.Codigo = CStr(dr("Cod_Idioma"))
item.Idioma = CStr(dr("Idioma"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
'actualiza datos poniendo su estado como inactivo (elimina)
Public Sub Update2(ByVal item As Idioma)
Try
Dim param() As String = {item.Codigo}
Me.ExecuteNomQuery("Usp_Idioma_Update2", param)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Clase Estado
Carpeta FirstImports Layer_Data
Imports Layer_Entity
Imports System.Data.Common
Partial Public Class EstadoBl
Inherits HelperDB
Public Function GetAll() As estadolist
Try
Dim lista As New estadolist
Using dr As IDataReader = Me.ExecuteReader("usp_estado_GetAll")
Do While dr.Read
Dim item As New Estado
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using 'Llama al dispose automaicamente
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
Public Function GetOne(ByVal codigo As String) As EstadoList
Try
Dim lista As New EstadoList
Dim item As New Estado
Dim param() As String = {codigo}
'Dim param(0) As String
'param(0) = codigo
Using dr As IDataReader = Me.ExecuteReader("usp_estado_GetOne", param)
If dr.Read Then
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
End If
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
Public Sub Insert(ByVal item As Estado)
Try
Dim param() As String = {item.Cod_estado, item.Estado}
Me.ExecuteNomQuery("usp_estado_Insert", param)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Sub Update(ByVal item As Estado)
Try
Dim param() As String = {item.Cod_estado, item.Estado}
Me.ExecuteNomQuery("usp_estado_Update", param)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Sub Delete(ByVal codigo As String)
Try
Dim param() As String = {codigo}
Me.ExecuteNomQuery("usp_estado_Delete", param)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Carpeta Second
Clase EstadoBlImports Layer_Data
Imports Layer_Entity
Partial Public Class EstadoBL
Public Function GetAll2() As EstadoList
Try
Dim lista As New EstadoList
Using dr As IDataReader = Me.ExecuteReader("Usp_Estado_GetAll2")
Do While dr.Read
Dim item As New Estado
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using 'Llama al dispose automaicamente
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
Public Function GetOne2(ByVal codigo As String) As EstadoList
Try
Dim lista As New EstadoList
Dim item As New Estado
Dim param() As String = {codigo}
Using dr As IDataReader = Me.ExecuteReader("Usp_Estado_GetOne2", param)
Do While dr.Read
item = New Estado
item.Cod_estado = CStr(dr("Cod_estado"))
item.Estado = CStr(dr("Detalle"))
lista.Add(item)
Loop
End Using
Return lista
Catch ex As Exception
Throw ex
End Try
End Function
End Class
Programacion 5 capas ----Capa 4 Reglas de Negocio
En esta capa vamos a agarantizar la consistencia de las subrutinas o procesos que hemos desarrolado en la capa layer_logic
Paso1 De igual manera una vez creada ambas carpetas agregaremos las clases dentro de ellas
Paso 2 crear las clases para ambas carpetas compatiendolas con su propiedad partial, y en el proyecto de la capa reglas de negocio hacer la referencia co la capa entidades y logica de negocio
Clase estadoRb
Paso1 De igual manera una vez creada ambas carpetas agregaremos las clases dentro de ellas
Paso 2 crear las clases para ambas carpetas compatiendolas con su propiedad partial, y en el proyecto de la capa reglas de negocio hacer la referencia co la capa entidades y logica de negocio
Clase IdiomaRB
Carpeta First
Imports Layer_Entity
Imports Layer_Logic
Partial Public Class IdiomaRB
Private Shared obj As New IdiomaBL
Public Shared Function GetAll() As IdiomaList
Try
Return obj.GetAll
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne(ByVal codigo As String) As IdiomaList
Try
Return obj.GetOne(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function Insert(ByVal item As Idioma)
Try
obj.Insert(item)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Sub Update(ByVal item As Idioma)
Try
obj.Update(item)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Shared Sub Delete(ByVal codigo As String)
Try
obj.Delete(codigo)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Clase IdiomaRB
Carpeta Second
Imports Layer_Entity
Imports Layer_Logic
Partial Public Class IdiomaRB
Public Shared Function GetAll2() As IdiomaList
Try
Return obj.GetAll2
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne2(ByVal codigo As String) As IdiomaList
Try
Return obj.GetOne2(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne3(ByVal codigo As String) As IdiomaList
Try
Return obj.GetOne3(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Sub Update2(ByVal item As Idioma)
Try
obj.Update2(item)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Imports Layer_Logic
Partial Public Class IdiomaRB
Public Shared Function GetAll2() As IdiomaList
Try
Return obj.GetAll2
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne2(ByVal codigo As String) As IdiomaList
Try
Return obj.GetOne2(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne3(ByVal codigo As String) As IdiomaList
Try
Return obj.GetOne3(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Sub Update2(ByVal item As Idioma)
Try
obj.Update2(item)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Clase estadoRB
Carpeta First
Imports Layer_Logic
Imports Layer_Entity
Partial Public Class EstadoRB
Private Shared obj As New EstadoBl
Public Shared Function GetAll() As EstadoList
Try
Return obj.GetAll
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne(ByVal codigo As String) As EstadoList
Try
Return obj.GetOne(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function Insert(ByVal item As Estado)
Try
obj.Insert(item)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Sub Update(ByVal item As Estado)
Try
obj.Update(item)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Shared Sub Delete(ByVal codigo As String)
Try
obj.Delete(codigo)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Imports Layer_Entity
Partial Public Class EstadoRB
Private Shared obj As New EstadoBl
Public Shared Function GetAll() As EstadoList
Try
Return obj.GetAll
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne(ByVal codigo As String) As EstadoList
Try
Return obj.GetOne(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function Insert(ByVal item As Estado)
Try
obj.Insert(item)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Sub Update(ByVal item As Estado)
Try
obj.Update(item)
Catch ex As Exception
Throw ex
End Try
End Sub
Public Shared Sub Delete(ByVal codigo As String)
Try
obj.Delete(codigo)
Catch ex As Exception
Throw ex
End Try
End Sub
End Class
Clase estadoRb
Carpeta Second
Imports Layer_Entity
Imports Layer_Logic
Partial Public Class EstadoRB
Public Shared Function GetAll2() As EstadoList
Try
Return obj.GetAll2
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne2(ByVal codigo As String) As EstadoList
Try
Return obj.GetOne2(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
End Class
Imports Layer_Logic
Partial Public Class EstadoRB
Public Shared Function GetAll2() As EstadoList
Try
Return obj.GetAll2
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetOne2(ByVal codigo As String) As EstadoList
Try
Return obj.GetOne2(codigo)
Catch ex As Exception
Throw ex
End Try
End Function
End Class
Programacion 5 capas ----Capa 5 Aplicacion
esta es la capa final donde mostraremos la informacion en este caso en una pagina asp.net (web)se hara de una manera sencilla usando ya la plantilla predeterminada del visual.net que nos ofrece un entorno amigable.
Paso 1 agrear un nuevo proyecto web al proyecto
Como tenemos un master page ese sera usado en todas nuestars paginas web, agregamos 2 paginas web una para idioma y otra para estado, es necesario tener otro master page para las paginas popup que se usara en el momento de hacerle mantenimeinto a la tabla, en este caso 2 paginas popup para cada pagina principal
agregar una nueva carpeta donde colocaremos las paginas y otras para los script si es que usaramos y tambien para imagenes si usamos imagenes dentro del proyecto web.
Paso 2 en la pagina principal Idioma agregar los sigueintes controles comose ve la imagen
los controles estan contenidos dentro de una tabla de 3 x 3 no se olviden de colocar en la propiedades del gridview alowwpaging en true y autogenerateselectedbutton en true y en gridlines en both
En la pestala codigo de la pagina colocar el siguiente codigo
<script language ="javascript " type="text/javascript" >
function ir() {
window.open("T_Idioma_Nu.aspx", null, "height=220,width=550,status=yes,toolbar=no,menubar=no,location=no , top=180, left=400");
}
</script>
<script language ="javascript " type="text/javascript" >
function ir2() {
window.open("T_Idioma_Ed.aspx", null, "height=240,width=550,status=yes,toolbar=no,menubar=no,location=no , top=180, left=400");
}
</script>
este codigo puedne ponerlo dentro del primer asp content que vean en su codigo d ela pagina, recuerden que es d ela plantilla que se genera cuando crearon su proyecto wweb, sino dentro del head si que creearon un proyecto web en blanco, lo que hace ese codigo es llamar a las paginas popup abriendo una nueva pagina web con medidas y orientacion establecidas dentro de ese codigo, ustedes la pueden cambiar dependiendo a su gusto, recuerdern que las paginas ppopup ya deben estar creadas y son 2 por cada pagina una para el ingreso de dato y la otra para la edicion
Paso 3 colocaremos el codigo dentro del codebehind, para ello en el proyecto web debemos hacer referencia a la proyectos layer_entity y layer_rules
Imports Layer_Entity
Imports Layer_Rules
Public Class T_Idioma
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'habilitamos el codigo javasript para los botones nuevo y editar
If Not IsPostBack Then
btn_nuevo.Attributes.Add("onclick", "javascript:ir();")
btn_editar.Enabled = False
btn_eliminar.Enabled = False
btn_editar.Attributes.Add("onclick", "javascript:ir2();")
End If
End Sub
Protected Sub btn_buscar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_buscar.Click
'vamos a buscar los datos ya sea colocando o no parametros en textbox
'ojo solo estamos usando un metodo,podrian ir probando con el getall u otros que son de busqueda
'llama a todos gv_idioma.DataSource = IdiomaRB.Getall
'llama por codigo gv_idioma.DataSource = IdiomaRB.Getone(txt_buscar.text)
'y asi pueden seguir con los metodos de busqueda
gv_idioma.DataSource = IdiomaRB.GetOne3(txt_buscar.Text)
gv_idioma.DataBind()
End Sub
Protected Sub btn_nuevo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_nuevo.Click
'abre ventana popup nuevo idioma y desabilita los botones editar y eliminar
'y redirige a la pagina idioma
btn_editar.Enabled = False
btn_eliminar.Enabled = False
Response.Redirect("T_Idioma.aspx")
End Sub
Protected Sub btn_editar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_editar.Click
'solo se llama ala pagina editar idioma cuando seleccioamos la fila en el gridview
btn_editar.Attributes.Add("onclick", "javascript:ir2();")
Response.Redirect("T_Idioma.aspx")
End Sub
Protected Sub btn_eliminar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_eliminar.Click
'actuliza el dato con el campo estado inabilitado, no lo elimina
Dim item As New Layer_Entity.Idioma
Dim codi As String
codi = gv_idioma.SelectedRow().Cells(1).Text
item.Codigo = codi
IdiomaRB.Update2(item)
Response.Redirect("T_Idioma.aspx")
End Sub
Protected Sub gv_idioma_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles gv_idioma.SelectedIndexChanged
'guarda la infomacion de cada celda de la fila seleccionada en variables session
'para que puedan ser usadas en otras paginas esos datos
Session("Dato_Idioma1") = gv_idioma.SelectedRow().Cells(1).Text
Session("Dato_Idioma2") = gv_idioma.SelectedRow().Cells(2).Text
Session("Dato_Idioma3") = gv_idioma.SelectedRow().Cells(3).Text
Session("Pasa") = "si"
btn_editar.Enabled = True
btn_eliminar.Enabled = True
End Sub
Private Sub gv_idioma_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gv_idioma.PageIndexChanging
'permite seguir con la paginacion del gridview tener en cuenta en colcoar la sproiedades sombreadas
' en el evento changing del griview
gv_idioma.DataSource = MonedaRB.GetOne3(txt_buscar.Text)
gv_idioma.PageIndex = e.NewPageIndex
gv_idioma.DataBind()
End Sub
End Class
Paso 4 Pagina Popup Nuevo Idioma. agregar los siguientes controles
los que estan en rojo son requiredfilevalidator, tener en cuenta algunas de sus propiedades como
controltovalidate(controlq eu validaemos),errormesage(colocar mensaje de respuesta al error),validationgroup, aqui colocar un nombre que sera relacionado con el boton ingresar que eatmbien tiene esa propiedad que debe estar escrita ahi tambien, en el caso del dropdownlist como lo lleno con una dato en -1 en mi codigo que es igual a seleccione....... se pone el -1 en la propiedad initial value del rfv quee sta controlando a ese control drop, solo en el caso del drop, lo mismo se dara en el popup editar idioma
Paso 5 codigo dentro del codebehind
Imports Layer_Entity
Imports Layer_Rules
Public Class T_Idioma_Nu
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'llama en el drop detalle de tabla estado
If Not IsPostBack Then
ddl_estado.DataSource = EstadoRB.GetAll2
ddl_estado.DataTextField = "Estado"
ddl_estado.DataValueField = "Cod_estado"
ddl_estado.DataBind()
'agrega un nuevo item
ddl_estado.Items.Insert(0, New ListItem("Seleccionar Estado", "-1"))
End If
End Sub
Protected Sub btn__Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_ingresar.Click
'agrega nuevo registro
Dim item As New Layer_Entity.Idioma
item.Idioma = txt_idioma.Text
item.Estado = ddl_estado.SelectedValue
item.Codigo = IdiomaRB.Insert(item)
End Sub
Protected Sub btn_cancelar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_cancelar.Click
'cierra ventana popup
Dim strscript As String = "<script language=javascript>window.top.close();</script>"
If (Not Page.IsStartupScriptRegistered("clientScript")) Then
Page.RegisterStartupScript("clientScript", strscript)
End If
End Sub
End Class
Pagina Popup Editar Idioma
Codigo en codebehind
Imports Layer_EntityImports Layer_Rules
Public Class T_Idioma_Ed
Inherits System.Web.UI.Page
Dim datoidioma As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
ddl_estado.DataSource = EstadoRB.GetAll2
ddl_estado.DataTextField = "Estado"
ddl_estado.DataValueField = "Cod_estado"
ddl_estado.DataBind()
ddl_estado.Items.Insert(0, New ListItem("Seleccione...", "-1"))
End If
'pasamos las variables guardadas cuando seleccionamod en el grid y la almacenamos en los controles
If Session("Pasa") = "si" Then
lbl_codigo.Text = Page.Server.HtmlDecode(Session("Dato_Idioma1"))
txt_idioma.Text = Page.Server.HtmlDecode(Session("Dato_Idioma2"))
datoidioma = Page.Server.HtmlDecode(Session("Dato_Idioma3")).ToString
ddl_estado.Items.FindByText(datoidioma).Selected = True
Session("Pasa") = "no"
End If
End Sub
Protected Sub btn_actualizar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_actualizar.Click
'codigo para editar registro
Dim item As New Layer_Entity.Idioma
Dim codi As String
codi = lbl_codigo.Text
item.Codigo = codi
item.Idioma = txt_idioma.Text
item.Estado = ddl_estado.SelectedValue
IdiomaRB.Update(item)
'cerrar ventana popup despues de editar
Dim strscript As String = "<script language=javascript>window.top.close();</script>"
If (Not Page.IsStartupScriptRegistered("clientScript")) Then
Page.RegisterStartupScript("clientScript", strscript)
End If
End Sub
Protected Sub btn_cancelar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_cancelar.Click
'cerrar ventana popup
Dim strscript As String = "<script language=javascript>window.top.close();</script>"
If (Not Page.IsStartupScriptRegistered("clientScript")) Then
Page.RegisterStartupScript("clientScript", strscript)
End If
End Sub
End Class
a parte de todo eso en el poyecto web abrir el archivo web.config para establecer la conexion y escribir el siguiente codigo
<connectionStrings>
<add name="cnDataBase" connectionString="Server = servidor; Initial Catalog = Bd; Uid=sa; Password = pass"
providerName="System.Data.SqlClient" />
</connectionStrings>
y bueno eso es todo a continuacion unos panatallazos sde como se hace mantenimeitno a la tabla idiomas
espero que les sirva y cualquier cosa solo pregunten.....
Vazagho Peru