Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/06/2012, 09:29
wilmerkid
 
Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Clases relacionadas en VB.net !!!

Hola junior1920 haber siguiendo tu esquema y hasta donde he podido entenderte puedes hacer lo siguiente. Tenemos las tres capas Entidad, Acceso Datos Y Presentacion.

CAPA ENTIDAD
Clase: categoriaEntities

Cita:

Public Class categoriaEntities
Private idcat As Integer
Private nom_cat As String
Private desc_cat As String
'--------------------------
Public Property gidcat()
Get
Return idcat
End Get
Set(ByVal value)
idcat = value
End Set
End Property
'--------------------------
Public Property gnom_cat()
Get
Return nom_cat
End Get
Set(ByVal value)
nom_cat = value
End Set
End Property
'--------------------------
Public Property gdesc_cat()
Get
Return desc_cat
End Get
Set(ByVal value)
desc_cat = value
End Set
End Property
'--------------------------
End Class
Clase: subcategoriaEntities

Cita:
Public Class subcategoriaEntities
Private idsubcat As Integer
Private idcat As Integer
Private nomsub_cat As String
'--------------------------
Public Property gidsubcat()
Get
Return idsubcat
End Get
Set(ByVal value)
idsubcat = value
End Set
End Property
'--------------------------
Public Property gidcat()
Get
Return idcat
End Get
Set(ByVal value)
idcat = value
End Set
End Property
'--------------------------
Public Property gnomsub_cat()
Get
Return nomsub_cat
End Get
Set(ByVal value)
nomsub_cat = value
End Set
End Property

'*********** AGREGAMOS UNA ASOCIACION A LA CLASE categoriaEntities *************
Private _categoriaEntities As categoriaEntities
Public Property categoriaEntities() As categoriaEntities
Get
Return _categoriaEntities
End Get
Set(ByVal value As categoriaEntities)
_categoriaEntities = value
End Set
End Property
'--------------------------

End Class


CAPA ACCESO DATOS

Clase: CategoriaAD

Cita:
Imports System.Data.SqlClient
Public Class CategoriaAD
Private miConexion As String = "Data Source=.; Initial Catalog =PruebasLocales; Integrated Security=true;"
Public Function BuscarPorID(ByVal idcat As Integer) As categoriaEntities
Try
Using cn As SqlConnection = New SqlConnection(miConexion)
Dim cmd As SqlCommand = New SqlCommand("SELECT idcat, nom_cat, desc_cat FROM categoriaEntities WHERE idcat = @idcat;", cn)
cmd.Parameters.Add("@idcat", SqlDbType.Int).Value = idcat
cn.Open()

Dim dr As SqlDataReader = cmd.ExecuteReader()
Dim iCategoriaEntities As categoriaEntities = New categoriaEntities()

If dr.Read() Then
iCategoriaEntities.gidcat = dr("idcat")
iCategoriaEntities.gnom_cat = dr("nom_cat")
iCategoriaEntities.gdesc_cat = dr("desc_cat")
End If
Return iCategoriaEntities
End Using
Catch ex As Exception
Throw New Exception("Error: CategoriaEntities-->BuscarPorID() " + ex.Message, ex)
End Try
End Function
End Class
Clase: SubCategoriaAD

Cita:
Imports System.Data.SqlClient

Public Class SubCategoriaAD
Private miConexion As String = "Data Source=.; Initial Catalog =PruebasLocales; Integrated Security=true;"
Public Function Listar(ByVal nombre As String) As List(Of subcategoriaEntities)
Try
Dim subcategoriaEntitiesLT As New List(Of subcategoriaEntities)

Using cn As SqlConnection = New SqlConnection(miConexion)
Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM subcategoriaEntities WHERE nomsub_cat LIKE @nomsub_cat;", cn)
cmd.Parameters.Add("@nomsub_cat", SqlDbType.VarChar, 50).Value = "%" + nombre + "%"
cmd.CommandType = CommandType.Text

cn.Open()
Dim iCategoriaEntitiesAD As CategoriaAD = New CategoriaAD()

Dim dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim iSubcategoriaEntities As subcategoriaEntities = New subcategoriaEntities
iSubcategoriaEntities.gidsubcat = dr("idsubcat")
iSubcategoriaEntities.gnomsub_cat = dr("nomsub_cat").ToString()
iSubcategoriaEntities.gidcat = dr("idcat")
iSubcategoriaEntities.categoriaEntities = iCategoriaEntitiesAD.BuscarPorID(iSubcategoriaEnti ties.gidcat)
subcategoriaEntitiesLT.Add(iSubcategoriaEntities)
End While
End Using

Return subcategoriaEntitiesLT

Catch ex As Exception
Throw New Exception("Error: SubcategoriaEntities-->Listar() " + ex.Message, ex)
End Try
End Function
End Class



CAPA LOGICA NEGOCIO

Clase: CategoriaLN
Cita:
Public Class CategoriaLN
Private iCategoriaEntitiesAD As CategoriaAD
Sub New()
iCategoriaEntitiesAD = New CategoriaAD()
End Sub
Public Function BuscarPorID(ByVal idcat As Integer) As categoriaEntities
Return iCategoriaEntitiesAD.BuscarPorID(idcat)
End Function

End Class
Clase: SubCategoriaLN
Cita:
Public Class SubCategoriaLN

Private iSubcategoriaEntitiesAD As SubCategoriaAD
Sub New()
iSubcategoriaEntitiesAD = New SubCategoriaAD()
End Sub
Public Function Listar(ByVal nombre As String) As List(Of subcategoriaEntities)
Return iSubcategoriaEntitiesAD.Listar(nombre)
End Function

End Class



CAPA PRESENTACION


Cita:


Private Sub btnListar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListar.Click
Try
Dim iSubcategoriaEntitiesLN As SubCategoriaLN = New SubCategoriaLN
Dim SubcategoriaEntitiesLT As List(Of subcategoriaEntities) = iSubcategoriaEntitiesLN.Listar(TextBox1.Text.Trim( ))
Dim Query = (From a In SubcategoriaEntitiesLT Select New With {.Codigo = a.gidsubcat, .SubCategoria = a.gnomsub_cat, .CategoriaID = a.gidcat, .Categoria = a.categoriaEntities.gnom_cat}).ToList()
DataGridView1.DataSource = Query

Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub