how to fetch table values in C#

Asked

Viewed 121 times

-2

i have this following code, how do I return what is in the user field of the user table ?

 public int GetPerfilId(string username)
 {
     int result = 0;

     if(db != null)
     {
         DAL.Utilizador uti = db.Utilizador.Where(u => u.username == username).FirstOrDefault();


         if (uti != null)
         {
             DAL.Utilizador_Perfil utip = db.Utilizador_Perfil.Where(up => up.idutilizador == uti.id).FirstOrDefault();

             if (utip != null) result = utip.idperfil;
         }

         //DAL.Utilizador_Perfil utip = db.Utilizador_Perfil.Where(x => x.Utilizador.username == username).FirstOrDefault();
         //if (utip != null) result = utip.idperfil;
    }

    return result;
}
  • Tiago, this question is very vague, could you put more details? taking advantage, make a [tour] and see how Stacoverflow works.

1 answer

1

A simple example I can give you is the following: Let’s say I have to fetch all the customer data (which is not repeated) 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
  • first, you should not put sensitive data in the code, you should put it in the app/web.config... read more on Best Practices for deploying passwords and other sensitive data to ASP.NET and Azure App Service

  • AP never mentioned that it is using ADO.NET or Posgresql.

  • Finally, creating a method that creates a connection, opens it and delivers it already open, is asking a connection to stay open, instead use the block using for all objects that implement IDisposable... NpgsqlConnection, NpgsqlCommand and NpgsqlDataReader.

  • thanks for the reply and I apologise to all for the lack of clarity of my question

Browser other questions tagged

You are not signed in. Login or sign up in order to post.