none
Inner join em ASP.NET WEB app C sharp RRS feed

  • Pergunta

  • Boa tarde pessoal. Estou tentando retornar o resultado de uma query com INNER JOIN em uma API REST em C# mas não estou conseguindo,não posso usar frameworks, tem que ser na base do código, já procurei bastante mas só acho com frameworks, segue me u código; TO:

      public class Marca
            {
                public int MarcaId { get; set; }
                public string Nome { get; set; }
                public Patrimonio patrimonio;
            }

    Repositório:

    public List<Marca> GetComposto(int marcaId)
        {
            List<Marca> marcas = new List<Marca>();
            List<Patrimonio> patrimonios = new List<Patrimonio>();
            SqlCommand query = new SqlCommand();
            connection.Open();
            query.Connection = connection;
            query.CommandText = @"SELECT Patrimonio.Nome, Patrimonio.MarcaId, NumeroTombo, Descricao FROM Marca INNER JOIN Patrimonio ON  Marca.MarcaId = Patrimonio.MarcaId  WHERE Marca.MarcaId = @marcaId;";
    
            query.Parameters.AddWithValue("@marcaId", marcaId);
    
            SqlDataReader leitura = query.ExecuteReader();
    
            while (leitura.Read())
            {
                Marca marca = new Marca();
                Patrimonio patrimonio = new Patrimonio();
                marca.patrimonio.Nome = (string)leitura["Nome"];
                marca.patrimonio.MarcaId =  (int)leitura["MarcaId"];
                marca.patrimonio.NumeroTombo = (int)leitura["NumeroTombo"];
                marca.patrimonio.Descricao = (string)leitura["Descricao"];
    
                marcas.Add(marca);
    
            }
            return marcas;
        }

    Controller:

    [Route("api/marca/patrimonio")] 
        public List<Marca> GetComposto(int marcaId)
        {
            try
            {
                using (RepositorioMarca conexao = new RepositorioMarca())
                {
                    marcas = conexao.GetComposto(marcaId);
                    return marcas;
    }
            }
            catch (SqlException e)
            {
                return null;
            }
        }

    Esta dando o erro: "Referência de objeto não definida para uma instância de um objeto" na Classe de repositório, em todas as linhas que tento construir o patrimonio(marca.patrimonio.Nome, marca.patrimonio.MarcaId...

    terça-feira, 5 de março de 2019 21:10

Todas as Respostas

  • Troca 
    Patrimonio patrimonio = new Patrimonio();
    marca.patrimonio.Nome = (string)leitura["Nome"];

    por

    marca.patrimonio = new Patrimonio();
    marca.patrimonio.Nome = (string)leitura["Nome"];

    quarta-feira, 6 de março de 2019 13:00