none
select from "parametro" RRS feed

  • Pregunta

  • Hola necesito hacer una select para rellenar un datagrid pero resulta que el nombre de la tabla que tengo que extraer la informacion se encuentra en un combobox.

    Osea yo necesitaria hacer algo asi:

    SELECT * From "Combobox2.Text" ----> algo asi, pero me da error, alguien conoce como pasar como parametro el from?

    Saludos

    sábado, 9 de febrero de 2013 15:13

Todas las respuestas

  • la unica forma es armar la query en un string

    string query = string.Format("SELECT * From {0}", Combobox2.Text);

    ese query lo asignas al SqlCommand

    Nota: recuerda mencionar en que lenguaje progrsmas y que base de datos usas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 9 de febrero de 2013 18:22
  • Hola Leando uso visual basic 2010 y mysql..

    sábado, 9 de febrero de 2013 18:31
  •  Dim query As String = String.Format("select Codigo,Nombre,Color,Talle,Tipo, count(*) Cantidad From {0}", ComboBox2.Text)
            Dim cnM As New MySqlConnection("server=localhost;User Id=root;database=ventas_dap")
            Try

                Dim daM As New MySqlCommand(query, cnM)
                Dim dsM As New DataSet

                daM.Fill(dsM, "0")
                With DataGridView1
                    .DataSource = dsM.Tables("0")
                    .Refresh()
                End With
            Catch ex As Exception
                MsgBox(ex.Message.ToString)
            Finally
                If cnM.State = ConnectionState.Open Then
                    cnM.Close() ' cierra la conexión
                End If

    Me queda algo asi,pero me da error en "dAm.fill("0")"

    Saludos

    sábado, 9 de febrero de 2013 18:36
  • porque no usas un datatable, o sea

    Try
    
    	Dim query As String = String.Format("select Codigo,Nombre,Color,Talle,Tipo, count(*) Cantidad From {0}", ComboBox2.Text)
    	Using cnM As New MySqlConnection("server=localhost;User Id=root;database=ventas_dap")
    	
    		Dim daM As New MySqlCommand(query, cnM)
    		Dim dt As New DataTable
    		daM.Fill( dt)
    	 
    		DataGridView1.DataSource = dt
    		
    	End Using
    	
    Catch ex As Exception
    	MsgBox(ex.Message.ToString)
    End Try


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 9 de febrero de 2013 18:41
  • Eso funciona Leandro muchas gracias pero ahora pasar que me pasa un solo dato en mi datagrid siendo que son 183 aprox. y en la columna tipo me suma count.. MI sentencia final mysql deberia ser algo asi:

    select codigo,nombre,color,talle,tipo, count(*) cantidad from

     From {0}", ComboBox2.Text


    group by codigo order by cantidad DESC

    Como podria acomodarla?

    sábado, 9 de febrero de 2013 18:51
  • Try

                Dim query As String = String.Format("Select Codigo,Nombre,Color,Talle,Tipo, count(*) Cantidad From {0}", ComboBox2.Text, " group by codigo order by cantidad DESC ")
                Using cnM As New MySqlConnection("server=localhost;User Id=root;database=ventas_dap")

                    Dim daM As New MySqlDataAdapter(query, cnM)
                    Dim dt As New DataTable
                    daM.Fill(dt)

                    DataGridView1.DataSource = dt

                End Using

            Catch ex As Exception
                MsgBox(ex.Message.ToString)
            End Try

    Me devuelve una sola fila en el datagrid, cuando en realidad me deberia devolver todas las filas y sumar las cantidades de los codigos =, saludos

    sábado, 9 de febrero de 2013 19:06
  • es que deberia ser

    Dim query As String = String.Format("Select Codigo,Nombre,Color,Talle,Tipo, count(*) as Cantidad From {0} group by codigo, Nombre,Color,Talle,Tipo order by cantidad DESC", ComboBox2.Text)

    Nota: recomendaria cuando tienes dudas de un metodo investigues en el msdn como se utiliza


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 9 de febrero de 2013 20:06