AnswerBun.com

Retorno Valor ID C# NpgsqlCommand

Stack Overflow em Português Asked by HimorriveL on September 24, 2020

Após inserir uma linha de informação em determinada tabela, preciso recuperar o valor do ID para preencher meu objeto, meu código está assim:

using (NpgsqlConnection pgsqlConnection = new NpgsqlConnection(conn)
        {           
            pgsqlConnection.Open();
            String sql = "INSERT INTO public.localpo(NOME) VALUES (:nome)";
            using (NpgsqlCommand pgsqlcommand = new NpgsqlCommand(sql, pgsqlConnection))
            {
    pgsqlcommand.Parameters.Add(new NpgsqlParameter("nome", "Ricardo Soares"));
            pgsqlcommand.ExecuteNonQuery();
            }
        }

Com esse código eu consigo inserir no banco de dados a informação sem problemas, ficando a dúvida, e para recuperar o id que foi gerado?

abaixo o codigo sql usado para gerar a tabela:

CREATE TABLE public.localpo (
id bigint NOT NULL DEFAULT nextval('localpo_id_seq'::regclass),
nome character varying(255) COLLATE pg_catalog."default",
CONSTRAINT pk_id_localpo PRIMARY KEY (id)
)

2 Answers

Existe um comando chamado returning que serve para justamente sua query retornar um dos campos, exemplo baseado na sua string:

INSERT INTO public.localpo(NOME) VALUES ('exemplo') returning id;

Correct answer by Lucas Miranda on September 24, 2020

Isso?

using (var conn = new NpgsqlConnection(conn) {           
    conn.Open();
    using (var cmd = new NpgsqlCommand("INSERT INTO public.localpo(NOME) VALUES (:nome)", conn)) {
        cmd.Parameters.Add(new NpgsqlParameter("nome", "Ricardo Soares"));
        var IdInserido = (int)cmd.ExecuteScalar();
    }
}

Coloquei no GitHub para referência futura.

Answered by Maniero on September 24, 2020

Add your own answers!

Related Questions

Qual a diferença entre split(” “) e split()

1  Asked on November 27, 2020 by shinforinpola

 

PHP não recebe POST Json

2  Asked on November 27, 2020 by weverton

     

Como converter latitude/longitude para Double em C#

1  Asked on November 26, 2020 by joaquim-caetano-teixeira

       

Como criar um “Area” no MVC no .net core 3.1?

2  Asked on November 23, 2020 by ester-ribeiro

   

Como bloquear datas retroativas no input datetime?

1  Asked on November 23, 2020 by grupo-astron

     

Problemas ao realizar restore de PostgreSQL

0  Asked on November 21, 2020 by renato-silva

       

“break” não termina a execução como deveria

3  Asked on November 21, 2020 by silvano-junior

       

Input em Bootstrap 4 não ocupa a largura toda

2  Asked on November 19, 2020 by guilherme-silva

   

Como tornar um repositório privado em público no GitLab?

1  Asked on November 8, 2020 by gabriel-fernandes

   

Baixar .txt para memória e ler

1  Asked on November 6, 2020 by jonathan-ribeiro

 

Criação de imagems com texto ‘imagecreate()’

1  Asked on November 3, 2020 by leandro-ferreira

       

Algoritmo de Portugol SE

0  Asked on October 29, 2020 by smilecraby_gamer

   

como melhorar o tempo no reconhecimento de voz em python 3?

1  Asked on October 27, 2020 by ruan-ferreira

 

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir