Hola nuevamente estoy intentando pasar 3 variables de públicas desde la capa
AccesoDatos y que se muestre en la capa
Presentacion
Aqui esta el código
I.- CAPA ACCESODATOS 1.1 CLASE UsuarioAD
Código vb:
Ver originalImports Npgsql
Imports NpgsqlTypes
imports EntidadNegocio
Public Class UsuarioAD
Public shared iduser as Integer
Public Shared nombres As String
Public Shared UserLogin As String
Public Shared Acceso As Boolean
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 "Rutina para el acceso"
Public Function login(ByVal ObjUsuarioEN As UsuarioEN) as String'As List(Of UsuarioEN)
Dim listuser As New List(Of UsuarioEN)
Dim reader As NpgsqlDataReader
Try
conn.Close()
conn.Open()
comando.CommandType=CommandType.StoredProcedure
comando.CommandText="user_acceso"
Dim _logacceso As New NpgsqlParameter("_logacceso",NpgsqlTypes.NpgsqlDbType.Varchar)
_logacceso.Value=ObjUsuarioEN.logacceso
_logacceso.Direction=ParameterDirection.Input
comando.Parameters.Add(_logacceso)
Dim _clave As New NpgsqlParameter("_clave",NpgsqlTypes.NpgsqlDbType.Varchar)
_clave.Value=ObjUsuarioEN.clave
_clave.Direction=ParameterDirection.Input
comando.Parameters.Add(_clave)
reader=comando.ExecuteReader
If(reader.Read)Then
iduser=reader("idusuario").ToString()
nombres=reader("nom_ape").ToString()
UserLogin = reader("logacceso").ToString()
End If
Return nombres
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 UsuarioEN
Código vb:
Ver originalPublic Class UsuarioEN
Private gidusuario As Integer
Private gnom_ape As String
Private glogacceso As String
Private gclave As String
Private gtelef As String
Private gcorreo As String
'--------------------------
Public Property idusuario() as Integer
Get
Return gidusuario
End Get
Set(ByVal value as Integer)
gidusuario=value
End Set
End Property
'--------------------------
Public Property nom_ape() as String
Get
return gnom_ape
End Get
Set(ByVal value as String)
gnom_ape=value
End Set
End Property
'--------------------------
Public Property logacceso() as String
Get
return glogacceso
End Get
Set(ByVal value as String)
glogacceso=value
End Set
End Property
'--------------------------
Public Property clave() as String
Get
return gclave
End Get
Set(ByVal value as String)
gclave=value
End Set
End Property
'--------------------------
Public Property telef() as String
Get
return gtelef
End Get
Set(ByVal value as String)
gtelef=value
End Set
End Property
'--------------------------
Public Property correo() as String
Get
return gcorreo
End Get
Set(ByVal value as String)
gcorreo=value
End Set
End Property
End Class
III.- CAPA LOGICANEGOCIO 3.- Clase UsuarioLN
Código vb:
Ver originalImports AccessoDatos
imports EntidadNegocio
Public Class UsuarioLN
Private ObjUsuarioAD As UsuarioAD
Public Sub New()
ObjUsuarioAD=New UsuarioAD
End Sub
Public iduser=ObjUsuarioAD.iduser 'esto lo agregue recientemente
Public nombres=ObjUsuarioAD.nombres 'esto lo agregue recientemente
#Region "Establecer conexión para listado"
Public Function listado() As List(Of UsuarioEN)
return ObjUsuarioAD.listado
End Function
#End Region
#Region "Establecer conexion con la función login"
Public Function login(ByVal ObjUsuarioEN As UsuarioEN) as String 'As List(Of UsuarioEN)
Return ObjUsuarioAD.login(ObjUsuarioEN)
End Function
#End Region
End Class
IV.-CAPA PRESENTACION 41.- Formulario login
Código vb:
Ver originalImports System.Data
Imports EntidadNegocio
Imports LogicaNegocio
imports System.Windows.Forms
Public Partial Class login
Public shared iduser as String
Public Shared nombres As String
Public Shared UserLogin As String
Public Shared Acceso As Boolean
Private ObjUsuarioEN As UsuarioEN
Private ObjUsuarioLN As UsuarioLN
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer support.
Me.InitializeComponent()
'
' TODO : Add constructor code after InitializeComponents
'
End Sub
#Region "Evento click del boton OK"
Sub BtnOKClick(sender As Object, e As EventArgs)
ObjUsuarioEN=New UsuarioEN
ObjUsuarioLN=New UsuarioLN
If((txtUSER_NAME.Text<>"") And (txtPASSWORD.Text<>""))Then
ObjUsuarioEN.logacceso=Ltrim(Rtrim(txtUSER_NAME.Text))
ObjUsuarioEN.clave=Ltrim(Rtrim(txtPASSWORD.Text))
If(ObjUsuarioLN.login(ObjUsuarioEN)<>"")Then
nombres=ObjUsuarioLN.nombres
iduser=ObjUsuarioLN.iduser
label1.Text=nombres
label2.Text=iduser
menuprincipal.Show()
' me.Hide()
Else
txtUSER_NAME.Focus
End If
Else
MessageBox.Show("Ingrese datos","Mensaje")
txtUSER_NAME.Focus
End If
End Sub
#End Region
Sub LoginLoad(sender As Object, e As EventArgs)
End Sub
End Class
4.2.-Formulario menuprincipal
Código vb:
Ver originalPublic Partial Class menuprincipal
Public nombres as String
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer support.
nombres=login.nombres 'esto lo agregue
Me.InitializeComponent()
'
' TODO : Add constructor code after InitializeComponents
'
End Sub
'En el evento load no me muestra el valor de la variable
Sub MenuprincipalLoad(sender As Object, e As EventArgs)
label1.Text=login.nombres
End Sub
Como veran tengo las variables:
iduser,nombres,UserLogin y estas son las variables que quiero obtener su valor en la
capa PRESENTACION del
Formulario menuprincipal; al gregar otro if en el formulario login debajo de esta línea de código:
Código vb:
Ver originalIf(ObjUsuarioLN.login(ObjUsuarioEN)<>"")Then
por ejemplo hago:
Código vb:
Ver original.
.
.
If(ObjUsuarioLN.login(ObjUsuarioEN)<>"")Then
nombres=ObjUsuarioLN.nombres
iduser=ObjUsuarioLN.iduser
If(iduser<>"" and nombres<>"")Then
label1.Text=nombres
label2.Text=iduser
menuprincipal.Show()
' me.Hide()
End If
Else
txtUSER_NAME.Focus
End If
.
.
.
Tengo que dar 2 veces click en el boton Ok para que pueda ingresar y ahi si que me muestra el valor pero se que no debe de ser así por que debería de ser que al primer click me mande al
menuprincipal y que se muestre el valor de la variable
Si me pueden indicar como lo podría hacer.
Y lo de usar
showdialog no creo por que el formulario login quedaría activo y solo lo quiero poner en
hide