miércoles, 17 de julio de 2013

Poner valor en un Textbox con un Query o Consulta - Visual Basic

Nota: Antes que todo debe existir un origen de datos o Data Source (una conexión a la base de datos).
  • Deben asegurarse que cuentan con la herramienta "Mostrar origenes de datos" ó "Show Data Source".


  •  Una vez que hayan abierto la herramienta se verán las tablas y campos contenidos en su DataSet.


  •  Luego lo que se debe de hacer es arrastrar uno de los campo que está en el "Origen de datos" a un Textbox. El campo puede ser cualquiera pero debe pertenecer a la tabla de la cual queremos obtener el valor. como se muestra en la siguiente imagen:


  •  Eso permitira que se creen el "DataSet", "BindingSource", "TableAdapter" y el "TableAdapterManager" en el formulario (Form1).


  • Una vez que ya se han creado dichos recursos, se eliminará el textbox donde pusimos el campo del "Origen de datos" y será reemplazado por uno que no este enlazado con la base de datos. 
  • Una vez hecho lo anterior, podemos iniciar a programar. Pueden poner el siguiente codigo en un boton:
           'La variable Query contiene la definición de la consulta, no los resultados de ejecutarla.
            Dim Query = From Empleado In BasedeDatosEmpleadosDataSet.Jefe
                    Where Empleado.EmpleadoID = TextBox1.Text
                    Select Empleado

            'Un mecanismo habitual para ejecutar una consulta es un bucle For Each. Se tiene acceso a cada 
            'elemento de la secuencia devuelta a través de la variable de iteración del bucle.
            For Each Record In Query
                TextBox2.Text = Record.NomEmp
                TextBox3.Text = Record.PuestoEmp
            Next

jueves, 11 de julio de 2013

Error de sintaxis (falta operador) en la expresión de consulta

Caso 
Supongamos que queremos buscar el nombre de un empleado usando su ID, por medio de un query parecido al siguiente:
SELECT Nombre. FROM Empleado WHERE (((Empleado.EmpID)  = "123"));

Problema
Nos muestra un mensaje que dice "Error de sintaxis (fanta operador) en la expresión de consulta 'Nombre'" y no podemos obtener un resultado.

Solución
El problema esta relacionado con el nombre del campo, posiblemente hayamos puesto por error un punto despues del nombre del campo. El punto puede ser usado pero solo si lo ponemos antes del nombre del campo y con el nombre de la tabla antes del punto, como en el siguiente ejemplo:
SELECT Empleado.Nombre FROM Empleado WHERE (((Empleado.EmpID)  = "123"));

por lo tanto puede ser escrito de dos formas:
  • Sin ningun punto: SELECT Nombre FROM Empleado WHERE (((Empleado.EmpID)  = "123"));
  • ó siguiendo el orden "Tabla-Punto-Campo":                                                                            SELECT Empleado.Nombre FROM Empleado WHERE (((Empleado.EmpID)  = "123"));

Deprecated: mysql_select_db(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

¿Les ha sucedido que intentan, hacer un query de conexión y les sale un mensaje de que la extensión que están usando es obsoleta? Les pon...