none
visual não reconhece comando ExecuteReader(), fica pedindo diretiva mas ela ta referenciada. RRS feed

  • Pergunta

  • using System;
    using System.Data; 
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using System.Data.OleDb;
    using System.Data.Common;

    public DataTable RetReceitaPorNome(string nomeBuscado )
    {
    bd.Conectar();
    DataTable dt = bd.RetDataTable(String.Format("SELECT * FROM Receita WHERE Nome LIKE '%{0}%'", nomeBuscado));
    SqlDataReader a = dt.ExecuteReader(); 

    if (a.HasRows)
    {
    while (a.Read()) //lê cada registro
    {
    if (nomeBuscado == a[nomeBuscado])
    {
    bool existe = true;
    }
    else
    {
    bool existe = false;
    }
    }
    }
    bd.Desconectar();
    //Se ele tiver pelo menos uma linha irá retornar os dados
    return dt; 
    }
    quinta-feira, 30 de maio de 2019 23:57

Todas as Respostas

  • Olá, Raquel!

    A classe DataTable não contém o método ExecuteReader(), por isso você continua obtendo o erro. Uma vez que você já possui o DataTable com os dados buscados do banco de dados, basta trabalhar com eles para obter o que deseja. Segue o código:

    public DataTable RetReceitaPorNome(string nomeBuscado )
    {
    	bd.Conectar();
    	DataTable dt = bd.RetDataTable(String.Format("SELECT * FROM Receita WHERE Nome LIKE '%{0}%'", nomeBuscado));
    
    	for(int=0; i < dt.Rows.Count; i++)
    	{
    		// O nome da coluna onde está o dado buscado fica entre os colchetes
    		// Nesse caso, estamos buscando o dado contido na coluna "Nome"
    		if(nomeBuscado == dt.Rows[i]["Nome"].ToString())
    		{
    			bool existe = true;
    		}
    		else
    		{
    			bool existe = false;
    		}
    	}
    
    	bd.Desconectar();
    	//Se ele tiver pelo menos uma linha irá retornar os dados
    	return dt; 
    }

    Ressalto que a variável existe está sendo declarada localmente, portanto, fora do método RetReceitaPorNome() ela não existirá!

    Att, Wallace


    “First do it, then do it right, then do it better.”


    sexta-feira, 31 de maio de 2019 16:26