Herramientas Informaticas

Etiqueta: Visual Studio 2022

Creando texto para vista PHP8 en base a la tabla usando Visual Basic 2022

Ahora solo queda hacer la función para generar automáticamente el código HTML/PHP para la vista del catalogo en base a la nueva tabla.

La lógica es igual solo que es otro texto

Insertamos el siguiente código

'IMPORTAMOS LAS LIBRERIAS NECESARIAS PARA LA CONEXIÓN A MYSQL/MARIADB
Imports MySqlConnector.MySqlConnection

'EMPIEZA EL MODULO
Module crearVista

    ' CON PUBLIC SUB CREAMOS PROCEDIMIENTOS
    Public Function generarVista() As String

        ' VARIABLES PARA LA CONEXIÓN
        Dim strServidor As String
        Dim strBaseDeDatos As String
        Dim strUsuario As String
        Dim strContra As String

        'Variables de uso
        Dim contador As Integer
        Dim strEncabezadosTabla As String
        Dim strCampos As String
        Dim strControlesNuevos As String
        Dim strControlesEditar As String
        Dim strEditarJS As String
        Dim strBloquear As String
        Dim strEditarTraeDatos As String
        Dim strDatos As String
        Dim strLLavePrimaria As String
        Dim strVista As String
        Dim strSegundoCampo As String

        contador = 0
        strEncabezadosTabla = ""
        strCampos = ""
        strControlesNuevos = ""
        strEditarJS = ""
        strDatos = ""

        'OBTENEMOS LOS DATOS DE CONFIGURACIÖN DEL REGISTRO DE WINDOWS PREVIAMENTE GUARDADAS
        If Not My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing) Is Nothing Then
            strServidor = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing).ToString()
            strBaseDeDatos = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "baseDeDatos", Nothing).ToString()
            strUsuario = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "usuario", Nothing).ToString()
            strContra = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "contra", Nothing).ToString()
        Else

            MsgBox("No se han capturado la conexión a la base de datos")
            Exit Function


        End If


        ' METEMOS LA CADENA DE CONEXIÓN EN UNA VARIABLE
        Dim cadenaConexion = "Server=" & strServidor & ";User ID=" & strUsuario & ";Password=" & strContra & ";Database=" & strBaseDeDatos

        ' CREAMOS LA CONEXIÓN CON LA CADENA DE CONEXIÓN
        Dim connection = New MySqlConnector.MySqlConnection(cadenaConexion)

        Try


            connection.Open()
            Dim comando = New MySqlConnector.MySqlCommand("delete from clases where clase= 'controladores/" & frmCreaCatalogo.txtTabla.Text & ".controlador.php'", connection)
            Dim resultado = comando.ExecuteReader()
            comando = Nothing
            resultado = Nothing
            connection.Close()



            connection.Open()
            comando = New MySqlConnector.MySqlCommand("delete from clases where clase= 'modelos/" & frmCreaCatalogo.txtTabla.Text & ".modelo.php'", connection)
            resultado = comando.ExecuteReader()
            comando = Nothing
            resultado = Nothing
            connection.Close()

            connection.Open()
            comando = New MySqlConnector.MySqlCommand("insert into clases(clase) values('controladores/" & frmCreaCatalogo.txtTabla.Text & ".controlador.php')", connection)
            resultado = comando.ExecuteReader()
            comando = Nothing
            resultado = Nothing
            connection.Close()

            connection.Open()
            comando = New MySqlConnector.MySqlCommand("insert into clases(clase) values( 'modelos/" & frmCreaCatalogo.txtTabla.Text & ".modelo.php')", connection)
            resultado = comando.ExecuteReader()
            comando = Nothing
            resultado = Nothing
            connection.Close()

            ' SI SE ABRE LA CONEXIÓN MANDAMOS MENSAJE
            connection.Open()




            comando = New MySqlConnector.MySqlCommand("SHOW KEYS FROM  " & frmCreaCatalogo.txtTabla.Text & " WHERE Key_name = 'PRIMARY'", connection)

            resultado = comando.ExecuteReader

            resultado.Read()


            'ASIGNAMOS EL CAMPO LLAVE

            strLLavePrimaria = resultado.GetString("Column_name")


            'OBTENEMOS LOS CAMPOS DE LA TABLA
            connection.Close()
            connection.Open()
            comando = Nothing
            comando = New MySqlConnector.MySqlCommand("describe  " & frmCreaCatalogo.txtTabla.Text & "", connection)
            resultado = Nothing
            resultado = comando.ExecuteReader



            contador = 0


            While (resultado.Read)
                strEncabezadosTabla &= "<th>" & utilerias.strPrimeraMayuscula(resultado("Field")) & "</th>" & vbCrLf

                strCampos &= "<td>'.$value[""" & resultado("Field") & """].'</td>" & vbCrLf

                If contador > 0 Then

                    strControlesNuevos &= "" & "            <!-- ENTRADA PARA " & UCase(resultado("Field")) & " --> " & vbCrLf
                    strControlesNuevos &= "" & " " & vbCrLf
                    strControlesNuevos &= "" & "            <div class=""form-group""> " & vbCrLf
                    strControlesNuevos &= "" & " " & vbCrLf
                    strControlesNuevos &= "" & "              <div class=""input-group""> " & vbCrLf
                    strControlesNuevos &= "" & " " & vbCrLf
                    strControlesNuevos &= "" & "                <span class=""input-group-addon"">" & utilerias.strPrimeraMayuscula(resultado("Field")) & ": </span>  " & vbCrLf
                    strControlesNuevos &= "" & " " & vbCrLf
                    strControlesNuevos &= "" & "                <input type=""text"" class=""form-control input-lg"" name=""nuevo" & utilerias.strPrimeraMayuscula(resultado("Field")) & """ placeholder=""Ingresar " & utilerias.strPrimeraMayuscula(resultado("Field")) & """ required> " & vbCrLf
                    strControlesNuevos &= "" & " " & vbCrLf
                    strControlesNuevos &= "" & "              </div> " & vbCrLf
                    strControlesNuevos &= "" & " " & vbCrLf
                    strControlesNuevos &= "" & "            </div> " & vbCrLf

                    strEditarJS &= "" & "            $(""#editarDescripcion"").val(respuesta[""descripcion""]);" & vbCrLf

                End If


                If resultado("Key") = "PRI" Then
                    strBloquear = "readonly"
                Else
                    strBloquear = ""
                End If



                strControlesEditar &= "" & "            <!-- ENTRADA PARA " & UCase(resultado("Field")) & " --> " & vbCrLf
                strControlesEditar &= "" & " " & vbCrLf
                strControlesEditar &= "" & "            <div class=""form-group""> " & vbCrLf
                strControlesEditar &= "" & " " & vbCrLf
                strControlesEditar &= "" & "              <div class=""input-group""> " & vbCrLf
                strControlesEditar &= "" & " " & vbCrLf
                strControlesEditar &= "" & "                <span class=""input-group-addon"">" & utilerias.strPrimeraMayuscula(resultado("Field")) & ": </span>  " & vbCrLf
                strControlesEditar &= "" & " " & vbCrLf
                strControlesEditar &= "" & "                <input " & strBloquear & "  type=""text"" class=""form-control input-lg"" id=""editar" & utilerias.strPrimeraMayuscula(resultado("Field")) & """ name=""editar" & utilerias.strPrimeraMayuscula(resultado("Field")) & """ placeholder=""Ingresar " & utilerias.strPrimeraMayuscula(resultado("Field")) & """ required> " & vbCrLf
                strControlesEditar &= "" & " " & vbCrLf
                strControlesEditar &= "" & "              </div> " & vbCrLf
                strControlesEditar &= "" & " " & vbCrLf
                strControlesEditar &= "" & "            </div> " & vbCrLf

                strEditarTraeDatos &= "" & "            $(""#editar" & utilerias.strPrimeraMayuscula(resultado("Field")) & """).val(respuesta[""" & resultado("Field") & """]); " & vbCrLf

                contador = contador + 1

            End While


            strControlesEditar &= "" & " <input type=""hidden"" id=""editar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """  name = ""editar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """ > " & vbCrLf
            strEncabezadosTabla &= "<th>Acciones</th>"
            strCampos &= "<td> " & vbCrLf
            strCampos &= "<div class = ""btn-group""> " & vbCrLf



            strCampos &= "                    <button class= ""btn btn-warning btnEditar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """ id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & " = ""'.$value[""id""].'"" data-toggle = ""modal"" data-target = ""#modalEditar" & Trim(utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text)) & """> <i class = ""fa fa-pencil""> </i> </button> " & vbCrLf

            strCampos &= "<button class = ""btn btn-danger btnEliminar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """ id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "= ""'.$value[""id""].'""><i class= ""fa fa-times""></i></button>" & vbCrLf

            strCampos &= "</div>" & vbCrLf

            strCampos &= "</td> " & vbCrLf

            strVista &= "" & "<?php" & vbCrLf
            strVista &= "" & vbCrLf
            strVista &= "" & "if(""off"" == ""offf""){" & vbCrLf
            strVista &= "" & vbCrLf
            strVista &= "" & "  echo '<script>" & vbCrLf
            strVista &= "" & vbCrLf
            strVista &= "" & "    window.location = ""inicio""; " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  </script>'; " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  return; " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "} " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "?> " & vbCrLf
            strVista &= "" & "<div class=""content-wrapper"">" & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  <section class=""content-header"">" & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    <h1> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      Administrar <?php echo  mb_strtolower(preg_replace('/(?<=\\w)(\\p{Lu})/u', ' $1', ' " & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & " ')); ?> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    </h1> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    <ol class=""breadcrumb""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      <li><a href=""inicio""><i class=""fa fa-dashboard""></i> Inicio</a></li> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      <li class=""active"">Administrar <?php echo  mb_strtolower(preg_replace('/(?<=\\w)(\\p{Lu})/u', ' $1', '" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & " ')); ?></li> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    </ol> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  </section> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  <section class=""content""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    <div class=""box""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      <div class=""box-header With-border""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <button class=""btn btn-primary"" data-toggle=""modal"" data-target=""#modalAgregar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          Agregar <?php echo  mb_strtolower(preg_replace('/(?<=\\w)(\\p{Lu})/u', ' $1', '" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & " ')); ?> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      <div class=""box-body""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "       <table class=""table table-bordered table-striped dt-responsive tablas"" width=""100%""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <thead> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "         <tr> " & vbCrLf
            strVista &= "" & " " & strEncabezadosTabla
            strVista &= "" & "         </tr>  " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </thead> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <tbody> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <?php " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        $item = null; " & vbCrLf
            strVista &= "" & "        $valor = null; " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        $" & frmCreaCatalogo.txtTabla.Text & "= Controlador" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "::ctrMostrar($item, $valor); " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "       foreach ($" & frmCreaCatalogo.txtTabla.Text & " as $key => $value){ " & vbCrLf
            strVista &= "" & " " & vbCrLf



            strVista &= "" & "          echo ' <tr> " & vbCrLf

            strVista &= "" & strCampos & vbCrLf

            strVista &= "" & " " & vbCrLf
            strVista &= "" & "                </tr>'; " & vbCrLf
            strVista &= "" & "        } " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        ?>  " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </tbody> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "       </table> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  </section> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "</div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "<!--===================================== " & vbCrLf
            strVista &= "" & "MODAL <?php echo  mb_strtolower(preg_replace('/(?<=\\w)(\\p{Lu})/u', ' $1', ' " & (frmCreaCatalogo.txtTabla.Text) & " ')); ?> " & vbCrLf
            strVista &= "" & " ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "<div id=""modalAgregar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """ class=""modal fade"" role=""dialog""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  <div class=""modal-dialog""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    <div class=""modal-content""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      <form role=""form"" method=""post"" enctype=""multipart/form-data""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <!--===================================== " & vbCrLf
            strVista &= "" & "        CABEZA DEL MODAL " & vbCrLf
            strVista &= "" & "        ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <div class=""modal-header"" style=""background:#3c8dbc; color:white"" > " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <button type=""button"" class=""close"" data-dismiss=""modal"">&times;</button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <h4 class=""modal-title"">Agregar <?php echo  mb_strtolower(preg_replace('/(?<=\\w)(\\p{Lu})/u', ' $1', ' " & (frmCreaCatalogo.txtTabla.Text) & " ')); ?> </h4> " & vbCrLf
            strVista &= "" & " " & vbCrLf

            strVista &= "" & "        </div> " & vbCrLf

            strVista &= "" & "        <!--===================================== " & vbCrLf
            strVista &= "" & "        CUERPO DEL MODAL " & vbCrLf
            strVista &= "" & "        ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <div class=""modal-body""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <div class=""box-body""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "            <!-- ENTRADA PARA DESCRIPCION --> " & vbCrLf

            strVista &= "" & " " & strControlesNuevos & vbCrLf


            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <!--===================================== " & vbCrLf
            strVista &= "" & "        PIE DEL MODAL " & vbCrLf
            strVista &= "" & "        ====================================== --> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <div class=""modal-footer""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <button type=""button"" class=""btn btn-Default pull-left"" data-dismiss=""modal"">Salir</button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <button type=""submit"" class=""btn btn-primary"">Guardar</button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <?php " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "           $crear = new Controlador" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "(); " & vbCrLf
            strVista &= "" & "           $crear ->ctrIngresar(); " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        ?> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      </form> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "</div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "<!--===================================== " & vbCrLf
            strVista &= "" & "MODAL EDITAR USUARIO " & vbCrLf
            strVista &= "" & " ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "<div id=""modalEditar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """ class=""modal fade"" role=""dialog"">" & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  <div class=""modal-dialog""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    <div class=""modal-content""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      <form role=""form"" method=""post"" enctype=""multipart/form-data""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <!--===================================== " & vbCrLf
            strVista &= "" & "        CABEZA DEL MODAL " & vbCrLf
            strVista &= "" & "        ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <div class=""modal-header"" style=""background:#3c8dbc; color:white"" > " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <button type=""button"" class=""close"" data-dismiss=""modal"">&times;</button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <h4 class=""modal-title"">Agregar <?php echo  mb_strtolower(preg_replace('/(?<=\\w)(\\p{Lu})/u', ' $1', ' " & (frmCreaCatalogo.txtTabla.Text) & " ')); ?> </h4> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <!--===================================== " & vbCrLf
            strVista &= "" & "        CUERPO DEL MODAL " & vbCrLf
            strVista &= "" & "        ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <div class=""modal-body""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <div class=""box-body""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "            <!-- ENTRADA PARA DESCRIPCION --> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & strControlesEditar
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <!--===================================== " & vbCrLf
            strVista &= "" & "        PIE DEL MODAL " & vbCrLf
            strVista &= "" & "        ======================================--> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        <div class=""modal-footer""> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <button type=""button"" class=""btn btn-Default pull-left"" data-dismiss=""modal"">Salir</button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "          <button type=""submit"" class=""btn btn-primary"">Modificar</button> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "     <?php " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "           $editar = new Controlador" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "(); " & vbCrLf
            strVista &= "" & "           $editar ->ctrEditar(); " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "        ?>  " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "      </form> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "    </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "  </div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "</div> " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "<?php " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "   $borrar = new Controlador" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "(); " & vbCrLf
            strVista &= "" & "   $borrar ->ctrBorrar(); " & vbCrLf
            strVista &= "" & " " & vbCrLf
            strVista &= "" & "?>  " & vbCrLf

            'JAVASCRIPT FUNCIONES
            strVista &= "" & "<script type=""text/javascript"">" & vbCrLf

            'ELIMINAR


            strVista &= "" & "/*= == == == == == == == == == == == == == == == == == == == == == ==" & vbCrLf
            strVista &= "" & " ELIMINAR " & UCase(frmCreaCatalogo.txtTabla.Text) & vbCrLf
            strVista &= "" & " == == == == == == == == == == == == == == == == == == == == == == = */" & vbCrLf
            strVista &= "" & "$("".tablas "").on(""click"", "".btnEliminar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """, function() {" & vbCrLf

            strVista &= "" & "    var id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & " = $(this).attr(""id" & frmCreaCatalogo.txtTabla.Text & """);" & vbCrLf

            strVista &= "" & "    swal( {" & vbCrLf
            strVista &= "" & "        title: '¿Está seguro de borrar?'," & vbCrLf
            strVista &= "" & "        text: ""¡Si no lo está puede cancelar la accíón!""," & vbCrLf
            strVista &= "" & "        type: 'warning'," & vbCrLf
            strVista &= "" & "        showCancelButton: true," & vbCrLf
            strVista &= "" & "        confirmButtonColor: '#3085d6'," & vbCrLf
            strVista &= "" & "        cancelButtonColor: '#d33'," & vbCrLf
            strVista &= "" & "        cancelButtonText: 'Cancelar'," & vbCrLf
            strVista &= "" & "       confirmButtonText: 'Si, borrar!'" & vbCrLf
            strVista &= "" & "    }).then(function(result) {" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "        if (result.value) {" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "            window.location = ""index.php?ruta=" & (frmCreaCatalogo.txtTabla.Text) & "&id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "=""+id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "+""&borrar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "=borrar"";" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "        }" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "    })" & vbCrLf

            strVista &= "" & "})" & vbCrLf


            'editar

            strVista &= "" & "/* = == == == == == == == == == == == == == == == == == == == == == ==" & vbCrLf
            strVista &= "" & " EDITAR " & vbCrLf
            strVista &= "" & " == == == == == == == == == == == == == == == == == == == == == == = */" & vbCrLf
            strVista &= "" & "$("".tablas "").on(""click"", "".btnEditar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """, function() {" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "    var id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & " = $(this).attr(""id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """);" & vbCrLf
            strVista &= "" & "  console.log(id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & ");"
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "    var datos = new FormData();" & vbCrLf
            strVista &= "" & "    datos.append(""id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """, id" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & "); " & vbCrLf
            strVista &= "" & "    datos.append(""buscar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """, ""buscar" & utilerias.strPrimeraMayuscula(frmCreaCatalogo.txtTabla.Text) & """);" & vbCrLf
            strVista &= "" & "   " & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "    $.ajax( {" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "        url:""controladores/" & frmCreaCatalogo.txtTabla.Text & ".controlador.php""," & vbCrLf
            strVista &= "" & "        method:""POST""," & vbCrLf
            strVista &= "" & "        data: datos," & vbCrLf
            strVista &= "" & "        cache: false," & vbCrLf
            strVista &= "" & "        contentType: false," & vbCrLf
            strVista &= "" & "        processData: false," & vbCrLf
            strVista &= "" & "       dataType:""json""," & vbCrLf
            strVista &= "" & "       success: function(respuesta) {" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & strEditarTraeDatos & vbCrLf
            strVista &= "" & "            " & vbCrLf
            strVista &= "" & "        }" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "    });" & vbCrLf
            strVista &= "" & "" & vbCrLf
            strVista &= "" & "})" & vbCrLf


            strVista &= "" & "</script>" & vbCrLf
            Return strVista
        Catch ex As Exception
            ' SI NO SE ABRE LA CONEXIÓN MANDAMOS MENSAJE DE ERROR
            MsgBox("ERROR " & ex.Message)

            Exit Function
        End Try

    End Function

End Module

Creando el texto para el modelo del catalogo en PHP en Visual Basic 2022

Hasta ahora ya nos pudimos conectar a la base de datos, hicimos consultas SQL a través de la conexión creada hicimos r creamos funciones para facilitar la programación, ahora nos toca simplemente maniobrar para crear todo el texto completo.

Como algo nuevo aprendido en este código es que no se pueden usar las comillas ” como escape por ejemplo \” en su lugar simplemente pones dos veces la doble comilla ejemplo “”

También el salto de linea que en gambas3 era gb.CrLf en Visual Basic 2022 es vbCrLf

Bien sin mas reparos les dejo como quedo finalmente el código para crear el código del modelo en PHP

'IMPORTAMOS LAS LIBRERIAS NECESARIAS PARA LA CONEXIÓN A MYSQL/MARIADB
Imports MySqlConnector.MySqlConnection

'EMPIEZA EL MODULO
Module crearModelo

    ' CON PUBLIC SUB CREAMOS PROCEDIMIENTOS
    Public Function generaModelo() As String

        ' VARIABLES PARA LA CONEXIÓN
        Dim strServidor As String
        Dim strBaseDeDatos As String
        Dim strUsuario As String
        Dim strContra As String

        'Variables de uso
        Dim strCampos As String
        Dim strCamposNoLLave As String
        Dim strLLavePrimaria As String
        Dim strCamposValue As String
        Dim strBindingInsert As String
        Dim strBindingUpdate As String
        Dim strCamposUpdate As String
        Dim strModelo As String

        'OBTENEMOS LOS DATOS DE CONFIGURACIÖN DEL REGISTRO DE WINDOWS PREVIAMENTE GUARDADAS
        If Not My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing) Is Nothing Then
            strServidor = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing).ToString()
            strBaseDeDatos = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "baseDeDatos", Nothing).ToString()
            strUsuario = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "usuario", Nothing).ToString()
            strContra = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "contra", Nothing).ToString()
        Else

            MsgBox("No se han capturado la conexión a la base de datos")
            Exit Function


        End If


        ' METEMOS LA CADENA DE CONEXIÓN EN UNA VARIABLE
        Dim cadenaConexion = "Server=" & strServidor & ";User ID=" & strUsuario & ";Password=" & strContra & ";Database=" & strBaseDeDatos

        ' CREAMOS LA CONEXIÓN CON LA CADENA DE CONEXIÓN
        Dim connection = New MySqlConnector.MySqlConnection(cadenaConexion)

        Try

            ' SI SE ABRE LA CONEXIÓN MANDAMOS MENSAJE
            connection.Open()



            Dim comando = New MySqlConnector.MySqlCommand("SHOW KEYS FROM  " & frmCreaCatalogo.txtTabla.Text & " WHERE Key_name = 'PRIMARY'", connection)

            Dim resultado = comando.ExecuteReader

            resultado.Read()


            'ASIGNAMOS EL CAMPO LLAVE

            strLLavePrimaria = resultado.GetString("Column_name")


            'OBTENEMOS LOS CAMPOS DE LA TABLA
            connection.Close()
            connection.Open()
            comando = Nothing
            comando = New MySqlConnector.MySqlCommand("describe  " & frmCreaCatalogo.txtTabla.Text & "", connection)
            resultado = Nothing
            resultado = comando.ExecuteReader



            Dim contador As Integer
            contador = 0


            While (resultado.Read)


                ' CAMPOS PARA EL Select
                If contador = 0 Then
                    strCampos = resultado.GetString("Field") & vbCrLf
                Else
                    strCampos = strCampos & "," & resultado("Field") & vbCrLf
                End If

                'CAMPOS PARA EL INSERT

                If resultado("Key") <> "PRI" Then
                    If contador = 1 Then
                        strCamposNoLLave = resultado("Field") & vbCrLf
                    Else
                        strCamposNoLLave = strCamposNoLLave & "," & resultado("Field") & vbCrLf
                    End If

                End If

                ' CAMPOS PARA EL VALUE

                If resultado("Key") <> "PRI" Then
                    If contador = 1 Then
                        strCamposValue = ":" & resultado("Field") & vbCrLf
                    Else
                        strCamposValue = strCamposValue & "," & ":" & resultado("Field") & vbCrLf
                    End If
                End If

                If resultado("Key") & vbCrLf <> "PRI" Then
                    strBindingInsert = strBindingInsert & "     $stmt -> bindParam("":" & resultado("Field") & """, $datos[""nuevo" & UCase(Mid$(resultado("Field"), 1, 1)) & Mid$(resultado("Field"), 2, 100) & """], PDO::PARAM_STR);" & vbCrLf
                End If

                ' CAMPOS UPDATE
                If resultado("Key") <> "PRI" Then

                    If contador = 1 Then

                        strCamposUpdate = strCamposUpdate & resultado("Field") & "= :" & resultado("Field")

                    Else

                        strCamposUpdate = strCamposUpdate & "," & resultado("Field") & "= :" & resultado("Field")

                    End If

                End If

                strBindingUpdate = strBindingUpdate & "     $stmt -> bindParam("":" & resultado("Field") & """, $datos[""editar" & utilerias.strPrimeraMayuscula(resultado("Field")) & """], PDO::PARAM_STR);" & vbCrLf

                contador = contador + 1



            End While


            strModelo = ""
            strModelo &= "<?php" & vbCrLf
            strModelo &= "require_once ""conexion.php"";" & vbCrLf
            strModelo &= "" & "" & vbCrLf



            strModelo &= "" & "Class Modelo" & UCase(Mid$(frmCreaCatalogo.txtTabla.Text, 1, 1)) & Mid$(frmCreaCatalogo.txtTabla.Text, 2, 25) & " {" & vbCrLf
            strModelo &= "" & "   /* =============================================" & vbCrLf
            strModelo &= "" & "     MOSTRAR " & UCase(frmCreaCatalogo.txtTabla.Text) & vbCrLf
            strModelo &= "" & "      ============================================= */" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "    Static Public Function mdlMostrar($tabla, $item, $valor) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "       If ($item != Null) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           $stmt = Conexion:: conectar() -> prepare( ""Select " & strCampos

            strModelo &= "" & "           From " & frmCreaCatalogo.txtTabla.Text & " a WHERE $item =$item"");" & vbCrLf
            strModelo &= "" & "" & vbCrLf


            strModelo &= "" & "           $stmt -> bindParam( "":"" .$item, $valor, PDO::PARAM_STR);" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           Try {" & vbCrLf
            strModelo &= "" & "               $stmt -> execute();" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "                Return $stmt -> fetch();" & vbCrLf
            strModelo &= "" & "           } Catch (PDOException $e) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "               $arr = $stmt -> errorInfo();" & vbCrLf
            strModelo &= "" & "                $arr[3] = ""Error"";" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "               If ($e -> getMessage() == 23000) {" & vbCrLf
            strModelo &= "" & "                   $mensaje = "" El registro esta duplicado, Favor de checar el numero de nomina "";" & vbCrLf
            strModelo &= "" & "                   Return $mensaje;" & vbCrLf
            strModelo &= "" & "               } Else {" & vbCrLf
            strModelo &= "" & "                  Return $arr[2];" & vbCrLf
            strModelo &= "" & "              }" & vbCrLf
            strModelo &= "" & "           }" & vbCrLf
            strModelo &= "" & "           " & vbCrLf
            strModelo &= "" & "           " & vbCrLf
            strModelo &= "" & "       } Else {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           $stmt = Conexion:: conectar() -> prepare(""Select * """ & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           " & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           From " & frmCreaCatalogo.txtTabla.Text & " a ""); """ & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           $stmt -> execute();" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           Return $stmt -> fetchAll();" & vbCrLf
            strModelo &= "" & "       }" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "       $stmt -> close();" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "        $stmt = Null;" & vbCrLf
            strModelo &= "" & "   }" & vbCrLf
            strModelo &= "" & "" & vbCrLf

            ' REGISTRO

            strModelo &= "" & "   /* ==================================================================" & vbCrLf
            strModelo &= "" & "     REGISTRO" & vbCrLf
            strModelo &= "" & "    ==================================================================== */" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "   Static Public Function mdlIngresar($tabla, $datos) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "      $stmt = Conexion:: conectar() -> prepare(""INSERT INTO " & frmCreaCatalogo.txtTabla.Text & "(" & strCamposNoLLave & "" & vbCrLf
            strModelo &= "" & "        " & vbCrLf
            strModelo &= "" & "                                                                       )" & vbCrLf
            strModelo &= "" & "                                                                       VALUES(" & strCamposValue & ")" & vbCrLf
            strModelo &= "" & "                          " & vbCrLf
            strModelo &= "" & "                                                                              ""); " & vbCrLf
            strModelo &= "" & ""

            strModelo &= "" & strBindingInsert & vbCrLf

            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "       If ($stmt -> execute()) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           Return ""ok"";" & vbCrLf
            strModelo &= "" & "       } Else {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           $arr = $stmt -> errorInfo();" & vbCrLf
            strModelo &= "" & "           $arr[3] = "" Error "";" & vbCrLf
            strModelo &= "" & "          Return $arr[2];" & vbCrLf
            strModelo &= "" & "      }" & vbCrLf

            strModelo &= "" & "      $stmt -> close();" & vbCrLf

            strModelo &= "" & "      $stmt = Null;" & vbCrLf
            strModelo &= "" & "  }" & vbCrLf



            'EDITAR ACTUALIZAR
            strModelo &= "" & "  /* ==================================================================" & vbCrLf
            strModelo &= "" & "   EDITAR " & vbCrLf
            strModelo &= "" & "     ================================================================== */" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "   Static Public Function mdlEditar($tabla, $datos) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "       $stmt = Conexion:: conectar() -> prepare("" UPDATE $tabla Set " & strCamposUpdate & "" & vbCrLf
            strModelo &= "" & ""
            strModelo &= "" & "                                                                   WHERE id =" & strLLavePrimaria & "  ""); " & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & strBindingUpdate
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "       If ($stmt -> execute()) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "           Return ""ok"";" & vbCrLf
            strModelo &= "" & "     } Else {" & vbCrLf
            strModelo &= "" & ""
            strModelo &= "" & "          Return ""Error"";" & vbCrLf
            strModelo &= "" & "      }" & vbCrLf
            strModelo &= "" & ""
            strModelo &= "" & "     $stmt -> close();" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "      $stmt = Null;" & vbCrLf
            strModelo &= "" & "   }" & vbCrLf
            strModelo &= "" & "   " & vbCrLf
            strModelo &= "" & " " & vbCrLf & vbCrLf
            strModelo &= "" & "  /* ===================================================================" & vbCrLf
            strModelo &= "" & "     BORRAR USUARIO" & vbCrLf
            strModelo &= "" & "     =================================================================== */" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "  Static Public Function mdlBorrar($tabla, $datos) {" & vbCrLf

            strModelo &= "" & "       $stmt = Conexion:: conectar() -> prepare( "" DELETE From " & frmCreaCatalogo.txtTabla.Text & " WHERE id =:id"");" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "       $stmt -> bindParam("":id"", $datos, PDO::PARAM_INT);" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "      If ($stmt -> execute()) {" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "Return ""ok"";" & vbCrLf
            strModelo &= "" & "      } Else {" & vbCrLf

            strModelo &= "" & "          Return ""Error"";" & vbCrLf
            strModelo &= "" & "      }" & vbCrLf

            strModelo &= "" & "        $stmt -> close();" & vbCrLf

            strModelo &= "" & "       $stmt = Null;" & vbCrLf
            strModelo &= "" & "    }" & vbCrLf
            strModelo &= "" & "" & vbCrLf
            strModelo &= "" & "}" & vbCrLf


            generaModelo = strModelo
        Catch ex As Exception
            ' SI NO SE ABRE LA CONEXIÓN MANDAMOS MENSAJE DE ERROR
            MsgBox("ERROR " & ex.Message)

            Exit Function
        End Try

    End Function

End Module

Como ejecutar una consulta MySQL y ciclo While en Visual Basic 2022

Ya hemos visto como realizar la conexión a la base de datos MySQL / MariaDB además de conectarnos con una cadena de conexión dinámica ahora veremos como realizar una consulta a una table y leer los datos con el ciclo While.

Estamos en en el archivo modulo crearModelo.vb justo despues de abrir la conexión declaramos la variable comando de tipo mysqlcommand, y ejecutaremos la siguiente consulta “describe proveedores;” la cual nos regresa los campos de la tabla, quedaría de la siguiente forma.

 Dim comando = New MySqlConnector.MySqlCommand("describe proveedores;", connection)

Posteriormente guardamos el resultado usando la función executeReader

Dim resultado = comando.ExecuteReader

En resultado tenemos guardado todos los renglones y columnas que nos regreso la consulta “describe proveedores;” para leerlos y mostrarlos en un MessageBox necesitaremos recorrerlos mediante un ciclo while y lo hacemos de la siguiente forma.

   While (resultado.Read)

      MessageBox.Show(resultado.GetString(0))

   End While
Vemos como el messageBox se muestra dependiendo del numero de columnas que tenga la tabla a la cual le hicimos el describe

Al final el código quedaría de la siguiente forma

'IMPORTAMOS LAS LIBRERIAS NECESARIAS PARA LA CONEXIÓN A MYSQL/MARIADB
Imports MySqlConnector.MySqlConnection

'EMPIEZA EL MODULO
Module crearModelo

    ' CON PUBLIC SUB CREAMOS PROCEDIMIENTOS
    Public Sub generaModelo()

        ' VARIABLES PARA LA CONEXIÓN
        Dim strServidor As String
        Dim strBaseDeDatos As String
        Dim strUsuario As String
        Dim strContra As String


        'OBTENEMOS LOS DATOS DE CONFIGURACIÖN DEL REGISTRO DE WINDOWS PREVIAMENTE GUARDADAS
        If Not My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing) Is Nothing Then
            strServidor = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing).ToString()
            strBaseDeDatos = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "baseDeDatos", Nothing).ToString()
            strUsuario = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "usuario", Nothing).ToString()
            strContra = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "contra", Nothing).ToString()
        Else

            MsgBox("No se han capturado la conexión a la base de datos")
            Return

        End If


        ' METEMOS LA CADENA DE CONEXIÓN EN UNA VARIABLE
        Dim cadenaConexion = "Server=" & strServidor & ";User ID=" & strUsuario & ";Password=" & strContra & ";Database=" & strBaseDeDatos

        ' CREAMOS LA CONEXIÓN CON LA CADENA DE CONEXIÓN
        Dim connection = New MySqlConnector.MySqlConnection(cadenaConexion)

        Try

            ' SI SE ABRE LA CONEXIÓN MANDAMOS MENSAJE
            connection.Open()


            Dim comando = New MySqlConnector.MySqlCommand("describe proveedores;", connection)

            Dim resultado = comando.ExecuteReader

            While (resultado.Read)

                MessageBox.Show(resultado.GetString(0))


            End While


            MsgBox("Conexion Correcta")

        Catch ex As Exception
            ' SI NO SE ABRE LA CONEXIÓN MANDAMOS MENSAJE DE ERROR
            MsgBox("ERROR " & ex.Message)

            Exit Sub
        End Try

    End Sub

End Module

CONEXIÓN VISUAL BASIC 2022 CON MYSQL

En la publicación anterior vimos como hacer el diseño de la ventana para generar el catalogo ahora nos toca leer la tabla para ver que campos contiene y así crear todos los archivos necesarios para crear el catalogo. Antes de leer los datos es necesario conectarnos a la base de datos de MySQL o MariaDB, así que en esta publicación veremos como conectarnos a a MySQL con Visual Basic 2022

Primero nos vamos a administrar paquetes Nutgets para solución e instalamos MySQLConector por Bradley Grainger
Creamos la carpeta módulos que nos servirá para guardar funciones y procedimientos necesarios para el proyecto que en nuestro caso será las conexiones
Creamos un modulo con nombre creaModelo

'IMPORTAMOS LAS LIBRERIAS NECESARIAS PARA LA CONEXIÓN A MYSQL/MARIADB
Imports MySqlConnector.MySqlConnection

'EMPIEZA EL MODULO
Module creaModelo
' CON PUBLIC SUB CREAMOS PROCEDIMIENTOS
Public Sub generaModelo()

    ' METEMOS LA CADENA DE CONEXIÓN EN UNA VARIABLE
    Dim cadenaConexion = "Server=127.0.0.1;User ID=root;Password=;Database=pos"

    ' CREAMOS LA CONEXIÓN CON LA CADENA DE CONEXIÓN
    Dim connection = New MySqlConnector.MySqlConnection(cadenaConexion)

    Try

        ' SI SE ABRE LA CONEXIÓN MANDAMOS MENSAJE
        connection.Open()
        MsgBox("Conexion Correcta")

    Catch ex As Exception
        ' SI NO SE ABRE LA CONEXIÓN MANDAMOS MENSAJE DE ERROR
        MsgBox("ERROR " & ex.Message)

        Exit Sub
    End Try

End Sub
End Module
Quedaría de esta forma
    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click

        creaModelo.generaModelo()

        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    End Sub

Así quedaría el evento Click

El evento CLICK lo dejamos de esta manera y hacemos la prueba
A la hora de hacer la prueba nos debe arrojar el siguiente mensaje

Y bien en la próxima publicación veremos como usar la variables que guardamos en el registro de Windows para integrarla en la cadena de conexión

Guardando configuración de la base de datos usando My.Computer.Registry

Ya vimos como llamar ventanas para ponerlas en la ventana principal, lo que haremos en esta publicación será como guardar la configuración de la base de datos.

Para ello vamos a crear una ventana llamada configuración y vamos a crear los campos de texto necesarios como que son los siguientes:

  1. Server
  2. Base de datos
  3. Usuario
  4. Contraseña

Primero nos creamos la ventana nueva de configuración

Añadimos las cuatro etiquetas con las cajas de texto, textbox , en los nombres procuraremos mantener un estándar por ejemplo en los campos de textos siempre le pondremos un nombre empezando como txt como txtHost, txtBaseDeDatos, txtUsuario y txtContraseña

Igual lo vamos a lanzar desde el menú configuración y desde el botón abrir

Además para el menú salir agregamos el siguiente código

Me.Close()
Lo ideal fuera guardar esas variables en la variables de configuración pero en Visual Basic 2022 con .NET 6.0 no funciona, entonces nos queda usar el registro de windows “REGEDIT” con my.computer.registry

Entonces en el load de la porfa agregamos el siguiente código, lo que hace es leer el registro de Windows donde estaremos guardando los datos de conexión

       If Not My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing) Is Nothing Then

            Me.txtServidor.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing).ToString()
            Me.txtBaseDeDatos.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "baseDeDatos", Nothing).ToString()
            Me.txtUsuario.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "usuario", Nothing).ToString()
            Me.txtContra.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "contra", Nothing).ToString()

        End If

Quedaría de la siguiente forma, ponemos un if para ver si existe el registro y si existe lo asignamos a los controloles

Ahora para grabar el los valores que escribimos en los controles ponemos el siguiente código en el evento click del botón aceptar

 My.Computer.Registry.SetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Me.txtServidor.Text)
        My.Computer.Registry.SetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "baseDeDatos", Me.txtBaseDeDatos.Text)
        My.Computer.Registry.SetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "usuario", Me.txtUsuario.Text)
        My.Computer.Registry.SetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "contra", Me.txtContra.Text)
Quedaría de la siguiente forma
Si todo salio bien vemos como se guardan los datos y aunque cerremos el programa al abrirlo estará la información guardada

En la próxima publicación veremos como hacer la conexión a la base de datos de MySQL

Crear ventana “acerca de” y llamarla como modal interno

Ya tenemos lista la ventana principal ahora tenemos que empezar a crear las ventanas internas del programa, para empezar vamos a crear una carpeta en la cual estarán todas las formas que se llamara formas

Preparando ventana principal y metiendo menú

Primero antes de poner el menú necesitamos preparar la ventana principal, ajustar los detalles como el icono, titulo, si es contenedor etc.

Al iniciar el proyecto tenemos esta venta básica, vemos que en el titulo dice Form1 y el icono es un icono genérico
Para cambiar el titulo damos click en la ventana y modificamos la propiedad Text
Para cambiar el icono de la aplicación nos vamos a la la propiedad Icon y seleccionamos el archivo de icono
Para agregar el menu nos vamos al cuadro de herramientas y en la categoría Menus & Toolbars y arrastramos el control MenuStrip
Aquí vemos como agregamos los menús Archivo, Procesos y ayuda, dentro de Archivo meteremos los sub menús Configuración y salir, dentro de Procesos metimos el sub menú crear catalogo y en el menú Ayuda metimos el sub menú de manual y acerca de
Agregamos también el menú con botones, en este caso solo dejamos el nuevo y el acerca de, para ello le damos click en el triangulo de la esquina superior derecha y le damos agregar elementos estándar, eliminamos los botones que no se necesitaran y queda de esta forma
Seleccionamos la ventana en general y en la propiedad isMDIContainer la dejamos como true “Verdadero” y entonces ya vamos a poder agregar ventanas internas dentro del programa

En la próxima publicación veremos como agregar una ventana nueva y mostrarla como interna

Creando proyecto WINFORMS en Visual Basic 2022

Ya tenemos todo instalado, ahora necesitamos hacer el proyecto de ventanas simples

Para crear el proyecto abrimos Visual Studio 2022

Empezamos dando click en Crear un proyecto
Elegimos la plantilla Visual Basic – Windows y Aplicación de Windows Forms y le damos click al boton siguiente
En el nombre del proyecto le ponemos CREADOR DE CATALOGOS MVC CRUD PARA JCPOS2021 PHP
Elegimos el Framework .NET 6.0
Y listo ya tenemos nuestra proyecto listo en blanco para poder pincelar nuestra grandiosa aplicación

En la siguiente publicación veremos como prepara la ventana principal con los menus, modificar algunos atributos como titulo icono ETC

Creado con WordPress & Tema de Anders Norén