Adivinen qué tengo la solución y la posteo para poder ayudar a otros
I.- CAPA ACCESODATOS 1.1.- Clase CategoriaAD
Código vb:
Ver originalImports System.Data
Imports Npgsql
Imports NpgsqlTypes
imports EntidadNegocio
Public Class CategoriaAD
Private conn As New NpgsqlConnection
Private comando As New NpgsqlCommand
#Region "Cadena de conexion"
Public Sub New()
Dim Objconexion As New conexion
conn = Objconexion.abrir
comando.Connection=conn
End Sub
#End Region
#Region "Función convertir datos"
Private Shared Function Convertircategoria(ByVal reader As IDataReader) As CategoriaEN
Dim categoria As New CategoriaEN()
categoria.gidcat = Convert.ToInt32(reader("idcat"))
categoria.gnom_cat = lTrim(RTrim(Convert.ToString(reader("nom_cat"))))
categoria.gdesc_cat = LTrim(RTrim(Convert.ToString(reader("desc_cat"))))
Return categoria
End Function
#End Region
#Region "Función listar"
Public Function listado() As List(Of CategoriaEN)
Dim listcat As New List(Of CategoriaEN)
Dim reader As NpgsqlDataReader
Dim Objcat As CategoriaEN
Try
comando.CommandType=CommandType.Text
comando.CommandText="SELECT idcat,nom_cat,desc_cat FROM categoria order by idcat asc"
reader=comando.ExecuteReader
While reader.Read()
listcat.Add(Convertircategoria(reader))
End While
Return listcat
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
conn.Close()
conn=Nothing
End Try
End Function
#End Region
#Region "Función insertar"
Public Sub agregar(ByVal ObjCategoriaEN As CategoriaEN)
Try
comando.CommandType=CommandType.StoredProcedure
comando.CommandText="agrega_categ"
Dim _nom_cat As New NpgsqlParameter("_nom_cat",NpgsqlTypes.NpgsqlDbType.Varchar)
_nom_cat.Value=ObjcategoriaEN.gnom_cat
_nom_cat.Direction=ParameterDirection.Input
comando.Parameters.Add(_nom_cat)
Dim _desc_cat As New NpgsqlParameter("_desc_cat",NpgsqlTypes.NpgsqlDbType.Text)
_desc_cat.Value=ObjCategoriaEN.gdesc_cat
_desc_cat.Direction=ParameterDirection.Input
comando.Parameters.Add(_desc_cat)
comando.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
conn.Close()
conn=Nothing
End Try
End Sub
#End Region
#Region "Función Modificar"
Public Sub modificar(byval ObjCategoriaEN As CategoriaEN)
Try
Catch ex as Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
End Try
End Sub
#End Region
#Region "Función Eliminar"
Public Sub eliminar(ByVal ObjCategoriaEN As CategoriaEN)
Try
conn.Close()
conn.Open()
comando.CommandType=CommandType.StoredProcedure
comando.CommandText="delete_cat"
Dim _idcat As New NpgsqlParameter("_idcat",NpgsqlTypes.NpgsqlDbType.Integer)
_idcat.Value=ObjcategoriaEN.gidcat
_idcat.Direction=ParameterDirection.Input
comando.Parameters.Add(_idcat)
comando.ExecuteNonQuery()
Catch ex as Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
conn.Close()
' conn=Nothing
End Try
End Sub
#End Region
#Region "Función Buscar"
Public Function buscar(ByVal gnom_cat As String)As List(Of CategoriaEN)
Dim listcat As New List(Of CategoriaEN)
Dim reader As NpgsqlDataReader
Try
conn.Close()
conn.Open()
comando.CommandType=CommandType.StoredProcedure
comando.CommandText="like_cat"
Dim _nom_cat As New NpgsqlParameter("_nom_cat",NpgsqlTypes.NpgsqlDbType.Varchar)
_nom_cat.Value=gnom_cat
_nom_cat.Direction=ParameterDirection.Input
comando.Parameters.Add(_nom_cat)
reader=comando.ExecuteReader
While reader.Read
listcat.Add(Convertircategoria(reader))
End While
Return listcat
Catch ex as Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
conn.Close()
conn.ClearAllPools
End Try
End Function
#End Region
End Class
II.- CAPA EntidadNegocio 2.1.- Clase CategoriaEN
Código vb:
Ver originalPublic Class CategoriaEN
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
III.- CAPA LogicaNegocio 3.1.- Clase CategoriaLN
Código vb:
Ver originalImports AccessoDatos
imports EntidadNegocio
Public Class CategoriaLN
Private ObjCategoriaAD As CategoriaAD
Public Sub New()
ObjCategoriaAD=New CategoriaAD
End Sub
#Region "Establecer conexión con la función listado"
Public Function listado() As List(Of CategoriaEN)
return ObjCategoriaAD.listado
End Function
#End Region
#Region "Establecer conexion con la función Agregar"
Public Sub agregar(ByVal ObjCategoriaEN As CategoriaEN)
ObjCategoriaAD.agregar(ObjCategoriaEN)
End Sub
#End Region
#Region "Establecer conexion con la función Eliminar"
Public Sub eliminar(ByVal ObjCategoriaEN As CategoriaEN)
ObjCategoriaAD.eliminar(ObjCategoriaEN)
End Sub
#End Region
#Region "Establecer conexion con la función buscar"
Public Function buscar(ByVal gnom_cat As String) As List(Of CategoriaEN)
'ObjCategoriaAD.buscar(ObjCategoriaEN)
return ObjCategoriaAD.buscar(gnom_cat)
End Function
#End Region
End Class
IV.- CAPA Presentación 4.1- Formulario: listcategoria
Código vb:
Ver originalImports System.Data
imports System.Windows.Forms.CheckState
Imports EntidadNegocio
Imports LogicaNegocio
Public Partial Class listcategoria
Private checkboxcolumn As New DataGridViewCheckBoxColumn()
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer support.
Me.InitializeComponent()
'
' TODO : Add constructor code after InitializeComponents
'
End Sub
Private ObjCategoriaEN As CategoriaEN
Private ObjCategoriaLN As CategoriaLN
#Region "Modificador de acceso para cargar el listado"
Public Sub cargarlista()
Try
ObjCategoriaEN=New CategoriaEN
ObjCategoriaLN=New CategoriaLN
dgwlistcategoria.DataSource=ObjCategoriaLN.listado
me.Refresh()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
End Try
End Sub
#End Region
#Region "Evento load del formulario"
Sub ListcategoriaLoad(sender As Object, e As EventArgs)
cargarlista()
btn_delete.Enabled=False
End Sub
#End Region
Sub DgwlistcategoriaCellContentClick(sender As Object, e As DataGridViewCellEventArgs)
If e.RowIndex < 0 Or Not e.ColumnIndex = 0 Then Exit Sub
If Convert.ToBoolean(dgwlistcategoria.Rows(e.RowIndex).Cells(0).Value) Then
dgwlistcategoria.Rows(e.RowIndex).Cells(0).Value = False
btn_delete.Enabled=False
Else
dgwlistcategoria.Rows(e.RowIndex).Cells(0).Value = True
btn_delete.Enabled=True
End If
End Sub
#Region "Evento click del boton buscar"
Sub Btn_buscarClick(sender As Object, e As EventArgs)
ObjCategoriaEN=New CategoriaEN
ObjCategoriaLN=New CategoriaLN
dgwlistcategoria.DataSource=ObjCategoriaLN.buscar(Ltrim(Rtrim(txtbuscar.Text)))
End Sub
#End Region
#Region "Evento click del boton agregar"
Sub Btn_agregarClick(sender As Object, e As EventArgs)
Dim dialog As frm_insert_cat
dialog= New frm_insert_cat(Me)
dialog.ShowDialog()
dialog=Nothing
End Sub
#End Region
#Region "Evento click del boton modificar"
Sub Btn_modificarClick(sender As Object, e As EventArgs)
Dim f_update_cat As frm_update_cat
f_update_cat=New frm_update_cat(Me)
f_update_cat.ShowDialog()
End Sub
#End Region
#Region "Evento click del boton eliminar"
Sub Btn_deleteClick(sender As Object, e As EventArgs)
Try
ObjCategoriaEN=New CategoriaEN
ObjCategoriaLN=New CategoriaLN
For Each d As DataGridViewRow In dgwlistcategoria.Rows
If CBool(d.Cells(0).Value) Then
ObjCategoriaEN.gidcat=Cint(d.Cells(1).Value)
ObjCategoriaLN.eliminar(ObjCategoriaEN)
cargarlista()
End If
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
End Try
End Sub
#End Region
#Region "Evento click del boton refrescar"
Sub Btn_refrescarClick(sender As Object, e As EventArgs)
cargarlista()
End Sub
#End Region
End Class