none
Preenchimento do GridView RRS feed

  • Pergunta

  • Boa tarde.

    Estou com um problema no preenchimento de um gridview.

    estou fazendo dessa maneira

     MySqlCommand cmd = new MySqlCommand();
            string sql = "SELECT pr.codigo_chave,pr.codigo_produto,pr.nome_produto,ca.nome_categoria FROM infobook_net.produtos pr inner join categorias ca on pr.codigo_categoria = ca.codigo_categoria";
            Response.Write(sql);
    
            cmd.CommandText = sql;
            cmd.Connection = sqlConnection1;
            try
            {
                sqlConnection1.Open();
                MySqlDataReader reader = cmd.ExecuteReader();
    
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        GridView1.DataSource = reader;
                        GridView1.DataBind();
                    }
                }
                else
                {
                    Response.Write("não foram encontrados dados");
                }
            }
            catch (Exception ex)
            {
                Response.Write(Convert.ToString(ex));
            }

    Ele preenche corretamente somente com mais de uma linha de retorno se o retorno for de apenas uma linha ele não mostra nada e não da nenhum erro.

    Alguem pode me dar uma ajuda?

    segunda-feira, 25 de janeiro de 2016 16:40

Respostas

  • Você está fazendo errado! se fosse um retorno para classe era também um pouco diferente!

    Para simplificar:

    MySqlCommand cmd = new MySqlCommand();
    string sql = " SELECT pr.codigo_chave,pr.codigo_produto,pr.nome_produto,ca.nome_categoria ";
    sql + = " FROM infobook_net.produtos pr inner join categorias ";
    sql + = " ca on pr.codigo_categoria = ca.codigo_categoria ";
    
    cmd.CommandText = sql;
    cmd.Connection = sqlConnection1;
    try
    {
    	sqlConnection1.Open();
    	MySqlDataReader reader = cmd.ExecuteReader();
    	DataTable dataTable = new DataTable()        
    
    	if (reader.HasRows)
    	{
    		dataTable.Load(reader)
    		GridView1.DataSource = dataTable;
    		GridView1.DataBind();
    	}
    	else
    	{
    		Response.Write("não foram encontrados dados");
    	}
    	
    }
    catch (Exception ex)
    {
    	Response.Write(Convert.ToString(ex));
    }


    Fulvio C


    segunda-feira, 25 de janeiro de 2016 18:05