Inquiridor
Mestre Detalhe com Duas ListView

Discussão Geral
-
Estou tentando fazer um mestre-detalhe usando duas tabelas relacionadas em meu projeto.
O que acontece é que eu consegui fazer isso usando o componente do Windows Forms GridView seguindo um tutorial.
Mas agora eu quero usar essa mesma lógica para duas ListViews. Ou seja, a mesma ideia, mas agora ao invés de usa Grid quero usar o ListView. Quero usá-la mais por questão de aprendizado e facilidade que ela proporciona ao meu projeto.
Mas agora eu quero usar essa mesma lógica para duas ListViews. Ou seja, a mesma ideia, mas agora ao invés de usa Grid quero usar o ListView. Quero usá-la mais por questão de aprendizado e facilidade que ela proporciona ao meu projeto.
Mas como muito novo em WinForms não tenho muita ideia de como fazer isso.
Resumindo a história: tenho duas tabelas que são relacionadas. Alunoes e Ocorrências. E o relacionamento é de um aluno para várias ocorrências. Eu queria mostrar as informações do aluno em um ListView e ao selecionar algum registro mostre em outro ListView a Ocorrência que está relacionada a ele.
Tentei usar os mesmo códigos do tuto para aproveitar no ListView, mas não deu muito certo e acabei apagando todos os códigos que tinha.
Mas como posso fazer isso ? Ou existe alguma outra forma de fazer isso usando o Grid e ListView ?
**O ListView para os dados do aluno e o GridView para as ocorrências.
EDIT
Bem fuçando aqui consegui fazer com que funcionasse a pesquisa, mas somente em um ListView. E nesse que funciona, eu mostro para o usuário só os dados do aluno, e queria no outro ListViewmostrar todas as ocorrências relacionadas a aquele aluno selecionado.
Enfim, os códigos que tenho são:
Os códigos que tenho(Esse primeiro ta no form de pesquisas e o segundo é um trecho da classe que faz as manipulações, esse trecho é o da pesquisa):
public override void Pesquisar() { try { AcessaDadosOcorrencias acesso = new AcessaDadosOcorrencias(); DataTable dt = new DataTable(); if (radioButtonCodigo.Checked) { dt = acesso.PesquisaID(long.Parse(textBoxPesquisar.Text)); } if (radioButtonDescricao.Checked) { dt = acesso.PesquisaNomeAluno("%" + textBoxPesquisar.Text + "%"); } Carregar(dt); } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } } private void Carregar(DataTable dt) { try { listViewDados.Items.Clear(); foreach (DataRow dr in dt.Rows) { ListViewItem item = new ListViewItem(); item.Text = dr["OcorrenciaID"].ToString(); item.SubItems.Add(dr["NomeAluno"].ToString()); item.SubItems.Add(dr["TipoOcorrencia"].ToString()); item.SubItems.Add(dr["CausaOcorrencia"].ToString()); item.SubItems.Add(string.Format("{0:dd/MM/yyy}", dr["DataOcorrencia"])); item.SubItems.Add(dr["DescricaoOcorrencia"].ToString()); item.SubItems.Add(dr["Status"].ToString()); listViewDados.Items.Add(item); } } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } }
public DataTable Pesquisar() { try { PesquisasTableAdapter ta = new PesquisasTableAdapter(); BD_SISGALDataSet.PesquisasDataTable dt = new BD_SISGALDataSet.PesquisasDataTable(); ta.Pesquisar(dt); return dt; } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } } public override DataTable PesquisaID(long nCodGenerico) { try { BD_SISGALDataSet.PesquisasDataTable dt = new BD_SISGALDataSet.PesquisasDataTable(); PesquisasTableAdapter ta = new PesquisasTableAdapter(); ta.PesquisaID(dt, nCodGenerico); return dt; } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } } public override DataRow PesquisaID() { try { return this.PesquisaID(nCodOcorrencia).Rows[0]; } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } } public DataTable PesquisaNomeAluno(string sDsNomeAluno) { try { BD_SISGALDataSet.PesquisasDataTable dt = new BD_SISGALDataSet.PesquisasDataTable(); PesquisasTableAdapter ta = new PesquisasTableAdapter(); ta.PesquisaNomeAluno(dt, "%" + sDsNomeAluno + "%"); return dt; } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } }
- Editado Érik Thiago terça-feira, 26 de maio de 2015 14:06 Arrumando a pergunta
- Tipo Alterado Marcos SJ terça-feira, 23 de fevereiro de 2016 14:14