Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

norderzon

Dados de 2 tabelas

Recommended Posts

Oi

Tou a ter um problema que não consigo resolver.

 

Tou a listar os dados de um tableAdapter com um foreach e dentro desse foreach tou a listar os dados de outro tableadapter com outro foreach

 

O que pretendo é comparar um campo de um tableAdapter com outro campo do outro tableAdapter.

 

Se for diferente coloca-o numa label

O problema está na comparação, ele repete tudo e eu queria que não repetisse, apenas listasse uma vez

 

O meu código

 

// lista as inscrições dos alunos por uc
			ViewInscricoesBLL inscricoesAPI = new ViewInscricoesBLL();
			DEISupport.ViewInscricoesDataTable inscricoes = inscricoesAPI.GetInscricoesByUcId(ucId);
			foreach (DEISupport.ViewInscricoesRow row2 in inscricoes)
			{
				// lista os alunos por uc
				Aluno_UCBLL alunosAPI = new Aluno_UCBLL();
				DEISupport.Aluno_UCDataTable alunos = alunosAPI.GetAlunoUcByUcId(ucId);
				foreach (DEISupport.Aluno_UCRow row1 in alunos)
				{
					if (row2.aluno != row1.aluno)
					{
						LblNaoInsc.Text += string.Concat("Aluno: ", row1.aluno);
					}
				}

			}

Agradeço qq ajuda

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica esta errada, por que se você tem um DataTable com 1 e 2 e no outro a mesma coisa 1 e 2.

Quando ele comparar 1 com 1 não mostra, mas ae compara 1 com 2 ae mostra o 1, e assim por diante.

Ou seja sempre vai mostrar todos.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta quintelab

 

mas nao tou a perceber muito bem

 

desculpa não ter sido mais especifico anteriormente mas:

 

no datatable 1 o campo aluno é chave estrangeira da tabela Aluno

no datatable 2 o campo aluno é chave estrangeira da tabela Aluno

 

esse campo é inserido nessas tabelas com outro codigo

 

eu preciso de saber se o aluno do dataTable 1 não está no dataTable 2 por isso a comparação tem de ser entre os dois

 

só que ao fazer if (row2.aluno != row1.aluno) quando a condição for false não faz nada como devia mas continua a procurar o mesmo aluno mesmo depois de encontrado e repete sempre

 

Agradeço qq ajuda

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tou a perceber o erro na logica

 

ele mostra sempre todos porque faz a comparação várias vezes

 

Não tou é a ver como vou fazer pra funcionar como quero

 

Alguem tem uma ideia?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.