Versão atual:

C# conexão com PostGres

Como eu faço conexão de C# com PostGres, tenho um programa para fazer em aula para cadastrar receitas e não to conseguindo fazer, queria saber como faço o código para conectar o banco com os bot~es, exibir, alterar, incluir e deletar. Se tiver alguém que possa me ajudar, eu ficarei muito grato.

o q ja foi feito:

using System;

using System.Linq;

using System.Text;

using System.Data;

using Npgsql;

namespace CadastroReceita

{ class DAL

 {
    static string serverName = "127.0.0.1";                                          //localhost
    static string port = "5432";                                                            //porta default
    static string userName = "postgres";                                               //nome do administrador
    static string password = "leticia";                                             //senha do administrador
    static string databaseName = "info35";                                       //nome do banco de dados
    NpgsqlConnection pgsqlConnection = null;
    string connString = null;

    public DAL()
    {
        connString = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",
                                                    serverName, port, userName, password, databaseName);

        }
         public DataTable GetTodosRegistros()
    { 

        DataTable dt = new DataTable();

        try
        {
            using (pgsqlConnection = new NpgsqlConnection(connString))
            {

                pgsqlConnection.Open();
                string cmdSeleciona = "Select * from receita order by id";

                using (NpgsqlDataAdapter Adpt = new NpgsqlDataAdapter(cmdSeleciona, pgsqlConnection))
                {
                    Adpt.Fill(dt);
                }
            }
        }
        catch (NpgsqlException ex)
        {
            throw ex;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            pgsqlConnection.Close();
        }

        return dt;

    }
    public DataTable GetRegistroPorId(int id)
    {

        DataTable dt = new DataTable();

        try
        {
            using (NpgsqlConnection pgsqlConnection = new NpgsqlConnection(connString))
            {

                pgsqlConnection.Open();
                string tabela = "Select * from receita Where id = " + id;

                using (NpgsqlDataAdapter Adpt = new NpgsqlDataAdapter(tabela, pgsqlConnection))
                {
                    Adpt.Fill(dt);
                }                   
            }
        }
        catch (NpgsqlException ex)
        {
            throw ex;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            pgsqlConnection.Close();
        }
        return dt;
    }
    public void InserirRegistros(int id_receita, string NomeReceita, string ingrediente, string c, int Rendimento, int tempopreparo)
    {

        try
        {
            using (NpgsqlConnection pgsqlConnection = new NpgsqlConnection(connString))
            {

                pgsqlConnection.Open();

                string cmdInserir = String.Format("Insert Into receita(id_receita,NomeReceita,ingredientes,modoFazer,rendimento,tempoPreparo) values('{0}','{1}',{2})",id_receita,NomeReceita,ingredientes,modoFazer,rendimento,tempoPreparo);

                using (NpgsqlCommand pgsqlcommand = new NpgsqlCommand(cmdInserir, pgsqlConnection))
                {
                    pgsqlcommand.ExecuteNonQuery();
                }                    
            }
        }
        catch (NpgsqlException ex)
        {
            throw ex;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            pgsqlConnection.Close();
        }
     }
         public void AtualizarRegistro(int id_receita, string NomeReceita, string ingrediente,string c,int Rendimento,int tempopreparo)
    {
        try
        {
            using (NpgsqlConnection pgsqlConnection = new NpgsqlConnection(connString))
            {

                pgsqlConnection.Open();

                string cmdAtualiza = String.Format("Update receita Set ingrediente= '"  + ingrediente + "' , Rendimento " +  Rendimento + "tempopreparo " +  tempopreparo + " Where id = " + id_receita);

                using (NpgsqlCommand pgsqlcommand = new NpgsqlCommand(cmdAtualiza, pgsqlConnection))
                {
                    pgsqlcommand.ExecuteNonQuery();
                }
            }
        }
        catch (NpgsqlException ex)
        {
            throw ex;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            pgsqlConnection.Close();
        }
         }
              public void DeletarRegistro(string nome)
    {
        try
        {
            using (NpgsqlConnection pgsqlConnection = new NpgsqlConnection(connString))
            {
                //abre a conexao                
                pgsqlConnection.Open();

                string cmdDeletar = String.Format("Delete From receita Where NomeReceita = '{0}'",NomeReceita);

                using (NpgsqlCommand pgsqlcommand = new NpgsqlCommand(cmdDeletar, pgsqlConnection))
                {
                    pgsqlcommand.ExecuteNonQuery();
                }
            }
        }
        catch (NpgsqlException ex)
        {
            throw ex;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            pgsqlConnection.Close();
        }

    }

public string NomeReceita { get; set; } public object ingredientes { get; set; } public string id_receita { get; set; } public object modoFazer { get; set; } public object rendimento { get; set; } public object tempoPreparo { get; set; }}

}

Versões(3):

Ver a versão formatada

C# conexão com PostGres

Comentário

new question