Hola nuevamente aqui con otro problemita:
He creado un función buscar en postgres:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION like_cat(_nom_cat CHARACTER)
RETURNS SETOF categoria AS
$BODY$
DECLARE
_select categoria;
BEGIN
FOR _select IN SELECT * FROM categoria WHERE nom_cat ilike '%'||_nom_cat||'%'
loop
RETURN NEXT _select;
END loop;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
y hago lo siguiente; lo estoy haciendo en capas:
I.- CAPA ACCESO DATOS 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 Buscar"
Public Function buscar(ByVal ObjCategoriaEN As CategoriaEN)
Dim reader As NpgsqlDataReader
Dim categoria As New CategoriaEN
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=ObjcategoriaEN.gnom_cat
_nom_cat.Direction=ParameterDirection.Input
comando.Parameters.Add(_nom_cat)
comando.ExecuteNonQuery
Catch ex as Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
Finally
conn.Close()
conn.ClearAllPools
End Try
End Function
#End Region
2.- 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
3.- CAPA LogicaNegocio 3.1.- 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 conexion con la función buscar"
Public Function buscar(ByVal ObjCategoriaEN As CategoriaEN)
ObjCategoriaAD.buscar(ObjCategoriaEN)
End Function
#End Region
4.- CAPA Presentacion 4.1.- Formulario listcategoria
Código vb:
Ver originalImports System.Data
imports System.Windows.Forms.CheckState
Imports EntidadNegocio
Imports LogicaNegocio
Public Partial Class listcategoria
Sub Button1Click(sender As Object, e As EventArgs)
ObjCategoriaEN=New CategoriaEN
ObjCategoriaLN=New CategoriaLN
ObjCategoriaEN.gnom_cat=Ltrim(Rtrim(txtbuscar.Text))
ObjCategoriaLN.buscar(ObjCategoriaEN)
dgwlistcategoria.DataSource=ObjCategoriaLN.buscar
End Sub
End Class
Y este es el error que me muestra:
No se ha especificado ningún argumento para el parámetro 'ObjCategoriaEN' de 'Public Function buscar(ObjCategoriaEN As EntidadNegocio.CategoriaEN) As Object'. (BC30455)