![]() |
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 |
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 |
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 |
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? |
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?? |
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.. |
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... |
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 |
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' :neurotico 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 |
| La zona horaria es GMT -6. Ahora son las 19:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.