How to show data from two tables in c#?

Question:

I built a webservice in C#. With a table it was easy to display but what if I have two tables how would it be for me to display this data? I did it so it's the easiest way:

 [WebMethod]
     public String Teste()
     {
       SqlConnection Con = null;

       Mulheres_Cont contato= null;
       List<Object> contatos = new List<Object>();
       Con = new SqlConnection(WebConfigurationManager.ConnectionStrings["treinamentoBase"].ConnectionString);
       Con.Open();
       String Select = @"select tb_contato.nome, tb_contato.senha, tb_contato.usuario, tb_mulheres.nome, tb_mulheres.formacao from tb_contato inner join tb_mulheres on tb_contato.id = tb_mulheres.id";
       SqlCommand Cmd = new SqlCommand(Select, Con);
       SqlDataReader Dr = Cmd.ExecuteReader();
       while(Dr.Read())
       {

           contato = new Mulheres_Cont();

           contato.nome = Dr.GetString(0);
           contato.senha = Dr.GetString(1);
           contato.usuario = Dr.GetString(2);
           contato.nomeM = Dr.GetString(3);
           contato.formacao = Dr.GetString(4);

           contatos.Add(contato);

       }
       Con.Close();
       JavaScriptSerializer json = new JavaScriptSerializer();

       return json.Serialize(contatos);
    }

i think there is another more elegant way to display this could someone let me know?

Type I created the table just to represent this data to be displayed in json format:

public class Mulheres_Cont
{
    public String nome { get; set; }
    public String senha { get; set; }
    public String usuario { get; set; }
    public String nomeM { get; set; }
    public String formacao { get; set; }
}

Would there be a more elegant way to do this? I know I could create a Woman class:

   public class Mulher
   {
    public int id { get; set; }
    public Contato idContato { get; set; }
    public String nome { get; set; }
    public String formacao { get; set; }

    }

And this class is from a 1 : N relationship ie one contact can have many women.

But that way I couldn't make someone give me a light on how to do it that way? With an aggregation?

Answer:

public class Contato
{
    public String nome { get; set; }
    public String senha { get; set; }
    public String usuario { get; set; }

    ///<summary>
    /// Contém uma lista de mulheres
    ///</summary>
    public List<Mulher> mulheres {get; set; }    
}

public class Mulher
{
    public int id { get; set; }
    public Contato idContato { get; set; }
    public String nome { get; set; }
    public String formacao { get; set; }

}


while(Dr.Read())
{

    contato = new Contato();

    contato.nome = Dr.GetString(0);
    contato.senha = Dr.GetString(1);
    contato.usuario = Dr.GetString(2);

    //Irá adicionar um novo objeto a lista de mulheres em contato
    contato.mulheres = new List<Mulher>();
    contato.mulheres.Add(new Mulher
    {
        nome = Dr.GetString(3),
        formacao = Dr.GetString(4) 
    });

    contatos.Add(contato);

}
Scroll to Top