elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1]
1  Programación / .NET (C#, VB.NET, ASP) / Abrir form usando una variable de cadena de caraceteres.(SOLUCIONADO) en: 14 Junio 2010, 18:53 pm
 :-(
Que tal amigos? fijense que ando desarrollando una aplicacion con menús dinámicos en VB.Net , los menús me corren de maravilla, sin embargo mi problema viene en la conversion de el nombre del frm que se obtiene de la base de datos en tipo cadena a un objeto de tipo form que pueda usarse para invocar el formulario correcto.

Encontré varios códigos en internet, pero ninguno me ha funcionado, el que actualmente estoy trabajando es este:
Código:

Imports MySql.Data
Imports MySql.Data.MySqlClient
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic.CallType


Public Class Main

    Public user, idrol, iuseraccessmode As String

    Dim consulta As String
    Dim con As New MySqlConnection
    Dim comando As New MySqlCommand
    Dim adaptador As New MySqlDataAdapter
    Dim lector As MySqlDataReader
    Dim datos As New DataTable
    Dim mnMenu As MenuStrip

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        LoginForm1.Close()
        'MsgBox(iuseraccessmode)

        con = New MySqlConnection
        con.ConnectionString = "server = 192.168.1.3;" & "user = zzzzzzzz;" & "password = xxxxxxxxx;" & "database = xxxxxx;"

        Try

            con.Open()

            consulta = "Select menutext from menumaster Where mainmenu = 0" & _
                   " And menuid in (Select menuid from acceso Where idrol =" & _
                    CInt(iuseraccessmode) & ") " & _
                    "And isActive = 1"
            comando.Connection = con
            comando.CommandText = consulta
            lector = comando.ExecuteReader

            If lector.HasRows Then

                mnMenu = New MenuStrip

                While lector.Read()

                    mnMenu.Items.Add(lector(0).ToString, Nothing, New System.EventHandler(AddressOf MainMenu_OnClick))
                    Me.Controls.Add(mnMenu)

                End While
            End If

            lector.Close()

        Catch ex As Exception

            MsgBox("El siguiente error fue detectado: " & ex.Message.ToString, MsgBoxStyle.Critical)

        End Try

        con.Close()

    End Sub

    Private Sub MainMenu_OnClick(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim cms As New ContextMenuStrip()
        Dim sMenu() As String
        con = New MySqlConnection
        con.ConnectionString = "server = 192.168.1.3;" & "user = xxxxxxxx;" & "password = xxxxxxxx;" & "database = xxxxxxxx;"

        Try

            con.Open()

            consulta = "Select menuid from menumaster Where menutext = '" & sender.ToString & "'"
            comando.Connection = con
            comando.CommandText = consulta
            lector = comando.ExecuteReader

            Dim parentMenuID As Integer

            If lector.HasRows Then
                lector.Read()
                parentMenuID = lector("menuid")
            End If
            lector.Close()

            consulta = "Select menutext from menumaster Where mainmenu ='" & _
             parentMenuID & " '" & _
             "And isActive = 1" & _
             " And MenuID in (" & _
             "Select menuid from acceso Where idrol =" & _
             CInt(iuseraccessmode) & ")" & _
             " Order BY MenuOrder"
            comando.Connection = con
            comando.CommandText = consulta
            lector = comando.ExecuteReader

            ReDim Preserve sMenu(0)
            Dim i As Integer
            If lector.HasRows Then
                ReDim Preserve sMenu(0)
                i = 0
                While lector.Read()
                    ReDim Preserve sMenu(i)
                    sMenu(i) = lector("menutext")
                    i = i + 1
                End While
            End If
            lector.Close()
            For Each sMn As String In sMenu
                cms.Items.Add(sMn, Nothing, New System.EventHandler(AddressOf SelectedChildMenu_OnClick))
            Next
            Dim tsi As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
            tsi.DropDown = cms
            tsi.ShowDropDown()

        Catch ex As Exception

            MsgBox("El siguiente error fue detectado: " & ex.Message.ToString, MsgBoxStyle.Critical)

        End Try

        con.Close()

    End Sub

    Private Sub SelectedChildMenu_OnClick(ByVal sender As Object, ByVal e As System.EventArgs)
        
        Dim frmName As String
        'Dim frm As New Form

        con = New MySqlConnection
        con.ConnectionString = "server = 192.168.1.3;" & "user = xxxxxxxxx;" & "password = xxxxxxxxx;" & "database = xxxxxxx;"

        Try

            con.Open()
            consulta = "Select formname from menumaster Where menutext = '" & _
            sender.ToString & "'"
            comando.Connection = con
            comando.CommandText = consulta
            lector = comando.ExecuteReader

            If lector.HasRows Then

                lector.Read()
                frmName = lector(0).ToString
                lector.Close()

                Dim frm As Form = DynamicallyLoadedObject(frmName)
                frm.MdiParent = Me
                frm.Show()


            Else

                MsgBox("Under Construction", MsgBoxStyle.Exclamation, "Technical Error")

            End If

        Catch ex As Exception

            MsgBox("El siguiente error fue detectado: " & ex.Message.ToString, MsgBoxStyle.Critical)

        End Try

        con.Close()

    End Sub

    Private Function DynamicallyLoadedObject(ByVal objectName As String, _
        Optional ByVal args() As Object = Nothing) As Form
        Dim returnObj As Object = Nothing
        Dim Type As Type = Assembly.GetExecutingAssembly().GetType( _
            "SysROCAR." & objectName)
        If Type IsNot Nothing Then
            returnObj = Activator.CreateInstance(Type, args)
        End If
        Return returnObj
    End Function

End Class


Al darle click al menu que quiero abrir me manda el error: "Referencia a objeto no establecida como instancia de un objeto".

El problema empieza en la funion SelectedChildMenu_OnClick la cual manda un parametro a la funcion DynamicallyLoadedObject quien se encarga de el ensamblado de la cadena a objeto. Espero alguien pueda ayudarme porque ya me siento frustrado ... saludos.
2  Programación / .NET (C#, VB.NET, ASP) / Problema con While en: 25 Septiembre 2009, 19:03 pm
Hola a todos, estoy desarrollando una aplicacion relativamente sencilla pero hay un while que no me responde como yo espero, el código es este:
Código:
Dim respuesta As Char
                            respuesta = UCase(InputBox("¿Desea eliminar la clave definitivamente? S=Elimina definitivamente la clave. N=Elimina solo la marca de esa clave", "Responda S ó N"))


                            While (respuesta <> "S" Or respuesta <> "N")

                                respuesta = UCase(InputBox("Respuesta no aceptada. ¿Desea eliminar la clave definitivamente? S=Elimina definitivamente la clave. N=Elimina solo la marca de esa clave"))

                                If respuesta = Nothing Then

                                    Eliminar.Enabled = False
                                    id_prd.Text = Nothing
                                    descripcion.Text = Nothing
                                    id_cat.Text = Nothing
                                    marca.Text = Nothing
                                    existencia.Text = Nothing
                                    p_lista.Text = Nothing
                                    id_prd.Focus()

                                    MsgBox("Baja de artículo cancelada.", MsgBoxStyle.Exclamation)

                                    Exit While

                                End If

                            End While
El problema es que se supone que si el usuario ingresa S o N el while deberia terminar y pasar a la siguiente sentencia de control que es un IF, sin embargo aun poniendo la S o la N el while no termina, ya he probado pasando msgboxes en el while para ver que la variable reciba correctamente el parametro y efectivamente el msgbox me devuelv S o N asi que no se que pueda ser ya le di vueltas y no se que pueda ser ... ayuda por favor.
3  Programación / .NET (C#, VB.NET, ASP) / Formulario de ventas oO? en: 23 Abril 2009, 17:27 pm
Hola amigos, de nuevo molestandolos ... estoy diseñado un sistema de ventas e inventarios, lo estoy haciendo en VB.Net 2005. Ya estoy controlando lo que son salidas y entradas de mercancia al almacen, al igual que las altas y bajas de clientes, lo cual pues no es dificil, mi problema ahora viene en como programo la parte de las ventas   Por ejemplo, estoy pensando en manejar un tabla de ventas que es en la que quiero registrar que articulo vendo cada vez, con su id y su descripcion, asi como el cliente que lo compro, la cantidad,fecha y un id de ventas, con lo cual si quiero checar todos los articulos de un venta especifica pues pueda hacerlo, obviamente al hacer una venta a credito voy a afrectar otra tabla que se llama creditos, en donde tengo id de mis clientes, id de venta, y el monto total de cada venta, asi como la fecha de la venta y claro, no puede faltar que afecte mi tabla de inventario pues en la cual tengo que actualizar la 'cantidad' de articulos que van a quedar,lo que estaba pensando hacer era poner un DataGridView en el formulario de ventas, y en el campo de clave que vayan tecleando o entrando la clave del articulo, la cantidad y al dar enter haga la consulta y meta los demas  datos necesarios a datagridview, ya lo que no se es cuando ya este todo en la datagridvew ejecutar la venta y de ahi se hagan todas las modificaciones a las tablas pertinentes , alguna idea? u orientación? saludos. :-X
4  Programación / Programación Visual Basic / Problema de conexion MySQL en: 27 Agosto 2008, 17:47 pm
Hola que tal? he tenido problemas para poder hacer consultas a una base de datos desde internet, primero instalé el MySQL 5.1 localmente todo funciona de maravilla, la cuestion es que cuanod quiero hacer la conexion desde fuera de la red local solo me manda un mensaje de error que dice: "Unable to connect to any of the specified MySQL host".

Para acceder en la cadena de conexion puse mi IP publica, mi router esta direccionando perfectamente, como con el puerto por default (3306) no funcionaba decidi cambia el puerto al 65529 pero tampoco funciona. . .  el servico si está corriendo ya que si a la cadena de conexion le pongo la ip local si hace tods las consultas sin problema. . .  espero alguien me pueda ayudar a resolver esto que ya me tiene con dolor de cabeza ... les dejo mi cadena de conexion saludos!

P.D. Uso el mysql Connector NET 5.

Código:
con = New MySqlConnection
            con.ConnectionString = "server = 192.168.1.151;" & "Port=65529;" & "user = xxxx;" & "password = xxxxx;" & "database = xxxx;"

            Try

                'consulta de validacion de clave del producto

                con.Open()
                consulta = "select id_prod from inventario where id_prod=" & id_prod_txt.Text
                comando.Connection = con
                comando.CommandText = consulta
                adaptador.SelectCommand = comando
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines