GILBLAZER,
Já que sua Query está ok, vamos para outro detalhe.
Quando você utiliza while(sqlReader.Read())
O sistema irá realizar um laço em todos os registros do SqlDataReader, até chegar no final.
Dai como você está atribuindo os dados em objetos na tela, a cada passo do laço, você está substituindo os valores, então você sempre terá a impressão que ele só leu o último registro.
O correto seria você colocar um DataGrid na tela, e preenchê-lo da seguinte forma:
/*OBS: se for o gabinete de Tecnologia de Informação ele, faz a leitura, mas se for outro pula logo para o fim,
end catch*/
if (txtnomevisitante.Text.Trim() != "" && txtnumdoc.Text.Trim() != "" && txtfuncionariocontactar.Text.Trim() != "")
Button5.Enabled = true;
string constring = (ConfigurationManager.ConnectionStrings["conection"].ConnectionString);
string Query = "select t1.idf as codigo, t1.Nome,t1.Extencao,t2.Nome as Gabinete,t4.TpDominios as Ala, t2.Abrev,t3.TpDominios as Piso from tb_funcionario as t1 inner join tb_gabinete as t2 on t2.idgb =t1.fk_gabinete inner join tb_TpDominio as t3 on t3.id_tpdm =t2.Piso inner join tb_TpDominio as t4 on t4.id_tpdm =t2.Ala where t1.Nome ='" + txtfuncionariocontactar.Text + "' ;";
SqlConnection cnn = new SqlConnection(constring);
SqlCommand cmd = new SqlCommand(Query, cnn);
SqlDataReader sqlReader;
try
{
cnn.Open();
using (SqlDataAdapter a = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
a.Fill(dt);
meuDataGrid.DataSource = dt;
}
}
catch (Exception ex)
{
Response.Write("ERRO" + ex.Message);
}
}
Att, Lucio Rogerio
Espero ter ajudado, se ajudei, por favor "
Vote como Útil", e se resolvi seu problema, clique em "
Propor como Resposta".