Foros del Web » Programación para mayores de 30 ;) » .NET »

AYUDA 3 Capas vb.net

Estas en el tema de AYUDA 3 Capas vb.net en el foro de .NET en Foros del Web. Buen dia señores aqui otro tema: Tengo en vb.net 2005 una aplicación con una solución con 3 proyectos (3 capas). consegui el ejemplo de un ...
  #1 (permalink)  
Antiguo 03/01/2009, 16:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo AYUDA 3 Capas vb.net

Buen dia señores aqui otro tema:

Tengo en vb.net 2005 una aplicación con una solución con 3 proyectos (3 capas).
consegui el ejemplo de un profesor mio hace como 2 años.

bueno al grano:

CAPA DE DATOS:
TENGO AQUI TODO LO REFERENTE A LA CONECCION CON LA BD

CAPA NEGOCIO
AQUI HAY LO SIGUIENTE:

Public Function fx_USUARIO(ByVal USUARIO As String, ByVal CLAVE As String) As DataTable
fx_USUARIO = New DataTable
fx_USUARIO = cls.TraerDataset("USP_USUA", USUARIO, CLAVE).Tables(0)
End Function


USUARIO Y CLAVE SON LOS PARAMETROS QUE MANDO DESDE UNOS TEXBOX PARA MI STORE USP_USUA

O ESTA FUNCION SIN PARAMETROS..

Public Function fx_traer_Cliente() As DataTable
fx_traer_Cliente = New DataTable
fx_traer_Cliente = cls.TraerDataset("Usp_DETALLE").Tables(0)
End Function
DONDE ME MUESTRA TODOS LOS CLIENTES EN UN DATAGRIDVIEW ASI COMO LA ANTERIOR FUNCION

Y EN LA CAPA PRESENTACION DONDE ESTAN LOS FORMS CON SUS RESPECTIVOS CONTROLES COMO EL DATAGRIDVIUW MENCIONADO, DONDE LLAMO A MIS FUNCIONES DE LA CAPA NEGOCIO DE LA SIGUIENTE MANERA:

Sub cargar_datos()
Me.Dgdatos.DataSource = obj.fx_traer_Cliente
Me.Dgdatos.Columns(0).Width = 50
Me.Dgdatos.Columns(0).HeaderText = "Código"
Me.Dgdatos.Columns(1).Width = 190
Me.Dgdatos.Columns(1).HeaderText = "Cliente"
Me.Dgdatos.Columns(2).Width = 80
Me.Dgdatos.Columns(2).HeaderText = "RUC"


End Sub

AQUI VIENE LA PREGUNTA, HASTA AHORA SOLO PUEDO TRAER LO DATOS A LOS DATAGRIDVIUW, PERO COMO HAGO PARA TRAER O ENLAZAR A UN COMBOBOX POR EJEMPLO DONDE ME MUESTRE LOS DISTRITOS U OTRAS COSAS O A UN TEXBOX CON UN SOLO DATO LOGICAMENTE O POR ULTIMO QUE SE ALMACENE EN UNA VARIABLE.

EN EL COMBOBOX HICE LO SIGUIENTE:
Me.ComboBox1.Items.Add(obj.fx_traer_lugar)

PERO NO ME TRAE NADA... ALGUIEN POR FAVOR ME PUEDE AYUDAR.. GRACIAS
  #2 (permalink)  
Antiguo 03/01/2009, 21:10
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

Si queres cargar el combo "a mano" te doy un ejemplo de como lo hago yo a partir de un array, si traes un dataset es similar.... espero te sirva el ejemplo.

Sub CargarComboAct()

'Dimensionamos el arraylist y lo creamos
Dim Victor As New ArrayList

'Le asigno al nuevo array el resultado de la funcion CargarComboAct (que se encarga de ir a buscar los datos y devuelve un arraylist)
Victor = Me.unaCon.CargarComboAct

'Lo ordeno
Victor.Sort()

'Dimensiono una variable local i
Dim i As Integer

'Limipio el combo
Me.cboAct.Items.Clear()

'Recorro el arrylist
For i = 0 To Victor.Count - 1

'Voy llenando el combo con cada item del arryalist
Me.cboAct.Items.Add(Victor.Item(i))

Next

'Dejo seleccionado el primer item
cboAct.SelectedIndex = 0
End Sub




Con un dataset seria algo asi:

Dim i As Integer

For i = 0 To unDs.Tables(0).Rows.Count
Me.ddlMarca.Items.Add(CStr(unDs.Tables(0).Rows(i). Item(1)))
Next

Saludos
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #3 (permalink)  
Antiguo 03/01/2009, 22:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

Bueno me diste una idea... ya llene mis combos asi:

he creado una funcion
Public Shared Function Cargar_Combobox(ByVal dt As DataTable, ByRef cbx As Windows.Forms.ComboBox)
If dt.Rows.Count > 0 Then
cbx.DataSource = dt
cbx.ValueMember = dt.Columns(0).ToString() ' AQUI ESTAN LOS ID
cbx.DisplayMember = dt.Columns(1).ToString() 'AQUI ESTAN LOS NOMBRES
cbx.Text = ""
End If
Return Nothing
End Function

y lo llene con

Me.Cargar_Combobox(obj.fx_traer_ACTIVIDAD, ComboBox4)

me salio bien....

Pero ahora como podria hacerlo esta vez pero a una variable donde mi datable solo me arroja un valor y este valor asignada a esa variable podria compararla luego con otra en mi codigo... gracias
  #4 (permalink)  
Antiguo 03/01/2009, 23:47
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

No entiendo bien esto ultimo que quieres hacer, que tu DT te arroje un valor significa que tiene una sola columna? eso quieres decir?
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #5 (permalink)  
Antiguo 03/01/2009, 23:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

bueno si porque en mi store que recibe 2 parametros (usuario y pass) luego de una combinacion de selecs y comparaciones solo me muestra un codigo predefinido en el store ( es para mi inicio de sesion) ahora si ese codigo que se almacena en un DT por estar en 3 capas en mi codigo de VB lo quiero capturar en una variable para compararlo con otra y asi pueda acceder o negar el acceso al siguiente form.. no se si me deje entender??
  #6 (permalink)  
Antiguo 03/01/2009, 23:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

hasta ahora lo que hago es recibir mi DT en un datagridview que esta oculto luego me voy a la primera fila lo capturo almacenandola en una variable string y de ahi hago mi comparacion..
  #7 (permalink)  
Antiguo 04/01/2009, 00:07
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

A ver si entiendo, tu dataset trae una columna y por lo que veo una sola fila? O sea en definitiva un solo campo?

Bueno si fuera así y quieres comparar ese campo con una variable que tienes en tu clase supongo que sería algo así:

Funcion en mi capa de presentacion que recibe un dataset (unDs)

If unDs.Tables(0).Rows.Count >0 then

If VariableString = CStr(unDs.Tables(0).Rows(0). Item(0)) then

Return true

else

Return False

End if

No se si es lo que buscas...
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
  #8 (permalink)  
Antiguo 04/01/2009, 00:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

Biennnnnnnnnnnnnnnnn...
Lo Hice asi:

Dim VariableString As String
If obj.fx_USUARIO(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text).Rows.Count > 0 Then

VariableString = CStr(obj.fx_USUARIO(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text).Rows(0).Item(0))
Me.TextBox1.Text = VariableString


End If

Lo coloque en un texbox1 para ver si era el codigo y si es... muchas gracias... te debo una...
Gracias
  #9 (permalink)  
Antiguo 04/01/2009, 00:36
Avatar de normandos  
Fecha de Ingreso: diciembre-2001
Mensajes: 216
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: AYUDA 3 Capas vb.net

Me alegro haberte sido de ayuda.
Luego si nos ponemos un poco "puristas" podriamos "pulir" un poco ese código.
Por ejemplo si lo que buscas en tu BD es "un solo campo" en lugar de un dataset deberías buscar una variable string...


Luego tu código (suponiendo que aún buscas un dataset)

Dim VariableString As String
If obj.fx_USUARIO(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text).Rows.Count > 0 Then

VariableString = CStr(obj.fx_USUARIO(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text).Rows(0).Item(0))
Me.TextBox1.Text = VariableString


End If

Puliéndolo un poco podría verse así:

Dim VariableString As String
Dim sNombre As String= Trim(Me.UsernameTextBox.Text)
Dim sPass as String= Trim(Me.PasswordTextBox.Text)
Dim unDs as new Dataset 'Estoy en duda si aquí va o no el 'new'

unDs =obj.fx_USUARIO(sNombre, sPass)

If unDs.tables(0).Rows.Count >0 then
VariableString = Cstr(unDs.tables(0).Rows(0).Item(0))
Me.TextBox1.Text = VariableString

'O directamente si no existiera VariableString sería así:
Me.TextBox1.Text = Cstr(unDs.tables(0).Rows(0).Item(0))

End if
__________________
"No importa lo que nos suceda sino cómo reaccionamos ante lo que nos sucede."

Presidente James E. Faust
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:18.