none
Visualizo la Base de datos pero No visualizo las columnas de una tabla. Estoy conectado a phpMyAdmin MySQL RRS feed

  • Pregunta

  • Buenos días, favor su apoyo con este problema, no se visualizan las columnas de la Tabla. La base esta conectada a phpMyAdmin MySQL. La conexión está bien. La base de datos si se visualiza, pero la tabla CUSTOMER aparece sin columnas. Estoy en Visual Studio y uso el lenguaje C# Que hice mal?
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using MySql.Data.MySqlClient;
    
    namespace MCH
    {
        public partial class TEST : Form
        {
            SqlConnection conexion = new SqlConnection("server=192.185.154.34;database=invnesmc_VA05;Uid=invnesmc_VA05;pwd=123456");
    
            public TEST()
            {
                InitializeComponent();
            }
    
            private void textBox1_KeyUp(object sender, KeyEventArgs e)
            {
                conexion.Open();
                SqlCommand comando = conexion.CreateCommand();
                comando.CommandType = CommandType.Text;
                comando.CommandText = "SELECT * FROM Customer where Material City('" + textBox1.Text + "')";
    
            }
    
            private void TEST_Load(object sender, EventArgs e)
            {
                try
                {
                    string conexion = "server=192.185.154.34;database=invnesmc_VA05;Uid=invnesmc_VA05;pwd=123456";
                    string mysql = "SELECT * FROM invnesmc_VA05.Customer;";
    
                    MySqlConnection conn = new MySqlConnection(conexion);
                    MySqlCommand command = new MySqlCommand(mysql, conn);
    
                    conn.Open();
    
                    MySqlDataAdapter dtb = new MySqlDataAdapter();
                    dtb.SelectCommand = command;
    
                    DataTable dTable = new DataTable();
                    dtb.Fill(dTable);
    
                    dataGridView1.DataSource = dtb;
    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);                
                }
            }
        }
    }
    

    viernes, 24 de enero de 2020 15:13

Respuestas

  • hola

    >>pero la tabla CUSTOMER aparece sin columnas

    Como es eso de "sin columnas" ? en el codigo que nos muestras no estas ejecutando esa consulta

    ademas no usas parametros sino que concatenas en un string el valor del textbox, lo cual es una pesima practica

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 24 de enero de 2020 15:34
  • hola

    >>Aparece el nombre de las Tabla "Customer", pero no aparecem las columnas "Nombres, Apellidos, etc..."

    No aparecen donde ? un string para armar el select no tiene intellisense en el codigo

    en el select que defines traer todas las columnas por eso usaste el *

    >>Puedes ayudarme a mejorarlo?

    tu codigo deberia ser algo como esto

    DataTable dt = new DataTable();   
    using (var conn = new MySqlConnection("connection string"))   
    {   
        string query = "select campo1, campo2 from NombreTabla WHERE campo = ?param1";   
     
        var cmd = new MySqlCommand(query, conn);   
        cmd.Parameters.AddWithValue("@param1", TextBox1.Text);   
     
        var da = new MySqlDataAdapter(cmd);     
        da.Fill(dt);   
    } 
     
    DataGridView1.DataSource = dt; 


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 24 de enero de 2020 18:03
  • hola

    >>Unknown column 'campo' in 'where clause'

    pero cual es el select que estas ejecutando ?

    lo que puse es solo un ejemplo, no era para que copies y pegues tal cual, deberias poner los nombres de los campos de la tabla que defines

    en el where debes poner el campo por el cual vas a filtrar, peor es una campo de tu tabla

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 24 de enero de 2020 18:30
  • Me salió el siguiente error

    Que hice mal! Favor tu apoyo, gracias.

    MySql.Data.MySqlClient.MySqlException
      HResult=0x80004005
      Mensaje = Unknown column 'campo' in 'where clause'
      Origen = MySql.Data
      Seguimiento de la pila:
       en MySql.Data.MySqlClient.MySqlStream.ReadPacket()
       en MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
       en MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
       en MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
       en MySql.Data.MySqlClient.MySqlDataReader.NextResult()
       en MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
       en MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
       en System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
       en System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       en System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
       en System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
       en MCH.TEST.TEST_Load(Object sender, EventArgs e) en C:\Users\GOPERACIONES\source\repos\MCH\TEST.cs: línea 44
       en System.Windows.Forms.Form.OnLoad(EventArgs e)
       en System.Windows.Forms.Form.OnCreateControl()
       en System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       en System.Windows.Forms.Control.CreateControl()
       en System.Windows.Forms.Control.WmShowWindow(Message& m)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       en System.Windows.Forms.Form.WmShowWindow(Message& m)
       en System.Windows.Forms.Form.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

      La excepción se generó originalmente en esta pila de llamadas:
    MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    MySql.Data.MySqlClient.NativeDriver.GetResult(ref int, ref long)
    MySql.Data.MySqlClient.Driver.GetResult(int, ref int, ref long)
    MySql.Data.MySqlClient.Driver.NextResult(int, bool)
    MySql.Data.MySqlClient.MySqlDataReader.NextResult()
    MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBehavior)
    MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
    System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(System.Data.CommandBehavior)
    System.Data.Common.DbDataAdapter.FillInternal(System.Data.DataSet, System.Data.DataTable[], int, int, string, System.Data.IDbCommand, System.Data.CommandBehavior)
    System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable[], int, int, System.Data.IDbCommand, System.Data.CommandBehavior)
        ...
        [Pila de llamadas truncada]

    viernes, 24 de enero de 2020 18:25

Todas las respuestas

  • hola

    >>pero la tabla CUSTOMER aparece sin columnas

    Como es eso de "sin columnas" ? en el codigo que nos muestras no estas ejecutando esa consulta

    ademas no usas parametros sino que concatenas en un string el valor del textbox, lo cual es una pesima practica

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 24 de enero de 2020 15:34
  • Hola @Leandro Tuttini, gracias por la pronta respuesta, puedes brindarme ayuda? Gracias.

    Como es eso de "sin columnas" ? Aparece el nombre de las Tabla "Customer", pero no aparecem las columnas "Nombres, Apellidos, etc..."

    ademas no usas parámetros sino que concatenas en un string el valor del textbox, lo cual es una pesima practica Puedes ayudarme a mejorarlo?

    viernes, 24 de enero de 2020 17:45
  • hola

    >>Aparece el nombre de las Tabla "Customer", pero no aparecem las columnas "Nombres, Apellidos, etc..."

    No aparecen donde ? un string para armar el select no tiene intellisense en el codigo

    en el select que defines traer todas las columnas por eso usaste el *

    >>Puedes ayudarme a mejorarlo?

    tu codigo deberia ser algo como esto

    DataTable dt = new DataTable();   
    using (var conn = new MySqlConnection("connection string"))   
    {   
        string query = "select campo1, campo2 from NombreTabla WHERE campo = ?param1";   
     
        var cmd = new MySqlCommand(query, conn);   
        cmd.Parameters.AddWithValue("@param1", TextBox1.Text);   
     
        var da = new MySqlDataAdapter(cmd);     
        da.Fill(dt);   
    } 
     
    DataGridView1.DataSource = dt; 


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 24 de enero de 2020 18:03
  • Me salió el siguiente error

    Que hice mal! Favor tu apoyo, gracias.

    MySql.Data.MySqlClient.MySqlException
      HResult=0x80004005
      Mensaje = Unknown column 'campo' in 'where clause'
      Origen = MySql.Data
      Seguimiento de la pila:
       en MySql.Data.MySqlClient.MySqlStream.ReadPacket()
       en MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
       en MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
       en MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
       en MySql.Data.MySqlClient.MySqlDataReader.NextResult()
       en MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
       en MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
       en System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
       en System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       en System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
       en System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
       en MCH.TEST.TEST_Load(Object sender, EventArgs e) en C:\Users\GOPERACIONES\source\repos\MCH\TEST.cs: línea 44
       en System.Windows.Forms.Form.OnLoad(EventArgs e)
       en System.Windows.Forms.Form.OnCreateControl()
       en System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       en System.Windows.Forms.Control.CreateControl()
       en System.Windows.Forms.Control.WmShowWindow(Message& m)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       en System.Windows.Forms.Form.WmShowWindow(Message& m)
       en System.Windows.Forms.Form.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

      La excepción se generó originalmente en esta pila de llamadas:
    MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    MySql.Data.MySqlClient.NativeDriver.GetResult(ref int, ref long)
    MySql.Data.MySqlClient.Driver.GetResult(int, ref int, ref long)
    MySql.Data.MySqlClient.Driver.NextResult(int, bool)
    MySql.Data.MySqlClient.MySqlDataReader.NextResult()
    MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBehavior)
    MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
    System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(System.Data.CommandBehavior)
    System.Data.Common.DbDataAdapter.FillInternal(System.Data.DataSet, System.Data.DataTable[], int, int, string, System.Data.IDbCommand, System.Data.CommandBehavior)
    System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable[], int, int, System.Data.IDbCommand, System.Data.CommandBehavior)
        ...
        [Pila de llamadas truncada]

    viernes, 24 de enero de 2020 18:25
  • hola

    >>Unknown column 'campo' in 'where clause'

    pero cual es el select que estas ejecutando ?

    lo que puse es solo un ejemplo, no era para que copies y pegues tal cual, deberias poner los nombres de los campos de la tabla que defines

    en el where debes poner el campo por el cual vas a filtrar, peor es una campo de tu tabla

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 24 de enero de 2020 18:30