Chave secundaria em tabela

eu tenho o id da minha tabela ex: idmotorista, ai eu vou e crio outra tabela com o idmotorista como chave estrangeira, na hora que eu vo colocar na gridviwer no c# aparece o numero do id e eu queria colocar o nome do produto, no caso poderia ser joao, bruno etc.

SqlConnection conexao = new SqlConnection(strCon);

    string sql = "Select * from Caminhao;";

    SqlCommand cmd = new SqlCommand(sql, conexao);

    conexao.Open();

    try
    {
        SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

        while (reader.Read())
        {
            Model.Caminhao caminhao = new Model.Caminhao();

    caminhao.IDCaminhao = Convert.ToInt32(reader[0].ToString());

    caminhao.IDMotorista = convert.ToInt32(reader["IDMotorista"].ToString()); 

esse segundo ai aqui, ele é a minha chave secundaria, ele que fica mostrando o id não o nome

Deve ser mais ou menos assim (não sei o nome correto das tuas tabelas e colunas)

SELECT c.*, m.nome from Caminhao c, Motorista m where c.idMotorista = m.idMotorista

Como saber é bom, aconselho dares uma vista de olhos aqui.