A simple example I can give you is the following: Let's say I have to fetch all the (non-repeating) customer data from my database.
// String de BUSCA SQL (No seu caso será o de UTILIZADOR)
private string SQL_CLIENTES = "SELECT DISTINCT *" +
" FROM cliente";
// Abrindo/Recuperando uma conexão com NPGSQL (Caso não esteja instalado é necessário ir em TOOLS-> NUGET PACKAGE MANAGER -> MANAGE NUGET PACKAGE FOR SOLUTION -> PESQUISAR NPGSQL e INSTALAR NO SEU PROJETO.
private static NpgsqlConnection conn = null;
public static NpgsqlConnection getConexao()
{
if (conn == null)
{
string connstring = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};", "SEU_SERVIDOR_POSTGRESQL", "5432", "SEU_USUARIO_POSTGRESQL", "SUA_SENHA_POSTGRESQL", "SEU_ESQUEMA_POSTGRESQL");
conn = new NpgsqlConnection(connstring);
conn.Open();
}
return conn;
}
NpgsqlConnection conexao = ConexaoDAO.getConexao();
NpgsqlCommand cmd = new NpgsqlCommand(SQL_CLIENTES, conexao);
NpgsqlDataReader reader = cmd.ExecuteReader();
// Aqui eu coloquei uma lista de clientes (NO SEU CASO É UTILIZADOR)
private List<Cliente> listaClientes = new List<Cliente>();
// PERCORRENDO TODOS OS RESULTADOS ENCONTRADOS NA TABELA
while (reader.Read())
{
// INSERINDO NO OBJETO CLIENTE OS ATRIBUTOS DO CLIENTE (NO SEU CASO É UTILIZADOR)
Cliente cliente = new Cliente();
cliente.Nome1 = Convert.ToString(reader["nome_cli"]);
cliente.CidadeUF1 = Convert.ToString(reader["cidade_uf"]);
// INSERINDO NA LISTA DE CLIENTES
listaClientes.Add(cliente);
}
// FECHANDO O READER
reader.Close();
//OBS: ASSIM, SEUS UTILIZADORS (NO MEU CASO CLIENTE) ESTARÃO NA LISTA DE CLIENTES, DAÍ É SÓ MANIPULAR DO JEITO QUE VOCÊ NECESSITA