Dica Rápida: Retornando ID com o método ExecuteScalar

Olá pessoal, nesta dica rápida mostrarei como recuperar o ID gerado após um INSERT, com o método ExecuteScalar, da classe SqlCommand.

Muitas vezes precisamos não só fazer um INSERT de um registro no banco, como também recuperarmos o ID que gerado para o utilizarmos em outras situações. Lembrando que para que o SQL Server nos gere um ID após realizarmos o INSERT, nossa coluna deve ser do tipo Identity e ser chave primária (Primary Key).

Ignorando as instruções SQL vamos se focar no método em si e na instrução SQL. A Listagem 01 nos exibe o INSERT, com o uso do SELECT SCOPE_IDENTITY(), para retornar para nós o ID gerado.

Listagem 01 – Instrução SQL


string strInstrucaoSql = "INSERT INTO Clientes VALUES (@Nome, @Endereco, @Telefone, @Sexo, @Ativo, @DataCadastro) SELECT SCOPE_IDENTITY()";

Na Listagem 02 é criado uma variável do tipo Int32 que recebe o método ExecuteScalar convertido para o tipo da variável, da classe SqlCommand, necessária para nos retornar o ID que é gerado após a execução da instrução SQL da Listagem 01.

Listagem 02 – Variável que receberá o ID gerado pelo ExecuteScalar


Int32 idRetorno = Convert.ToInt32(objCommand.ExecuteScalar());

A Figura 01 representa o ID gerado para nossa variável. Assim poderemos utilizá-lo para outras operações relacionadas ao banco.

Figura 01 – ID gerado após a execução do INSERT

 Assim finalizo a dica rápida. Muito obrigado a todos!

 Um abraço, e até o próximo artigo.

 Wellington Balbo de Camargo

wellingtonbalbo@gmail.com

Publicado em 17/11/2011, em .NET, ADO.NET, C#, Dicas e marcado como , , , . Adicione o link aos favoritos. 1 Comentário.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 503 other followers