dilonghi 0 Denunciar post Postado Janeiro 9, 2007 Ola pessoal, ja revirei o forum para tentar descobirar como recuperar o Id de um registro que acabei de dar um Insert. O que preciso fazer é o seguinte, em um form tenho alguns dados, d'ados pessoais', e 'dados de acesso'. Entao na postagem os 'dados pessoais' devem ser inseridos na tabela clientes e os 'dados de acesso' na tabela ACESSO. Entao após inserir os dados em Clientes, preciso recuperar o ID deste cadastro, para inserir e vincular os 'dados de acesso' em ACESSO. Podem me ajudar? Abaixo o codigo de insert que estou usando sub cadastrar(obj as object, e as eventargs) Dim comando As New SqlCommand ("Insert into CLIENTE (SIGLA, Telefone_Central_Guias, Nome_Central_Guias, Localizacao, Nome, DATA_CADASTRO) Values ('"& Sigla.text &"', '"& Telefone.text &"', '"& NomeGuias.text &"', '"& Localizacao.text &"', '"& Nome.text &"', '"& dDataAtual &"')", conexao ) try conexao.Open() comando.ExecuteNonQuery() catch ex as Exception lblMessage.text = "Erro ao acessar a base" end try conexao.Close() lblMessage.text = "<br><font color=#006600> Associado <strong>"& Nome.Text &"</strong> foi cadastrado com sucesso<br></font>" end sub Compartilhar este post Link para o post Compartilhar em outros sites
Graymalkin 0 Denunciar post Postado Janeiro 9, 2007 Qual o banco de dados utilizado? No PostgreSQL eu usava uma instrução SQL assim para campos do tipo auto-numeração: SELECT currval('public."tabela_Campo_seq"') Mas, provavelmente isso só deve servir para o PostgreSQL. Abraços, Graymalkin Compartilhar este post Link para o post Compartilhar em outros sites
dilonghi 0 Denunciar post Postado Janeiro 10, 2007 To usando SQL server.. olha só, no ASP fazia uma consulta na tabela q inseri, usando como parametro os dados que acabei de inserir, pegava o ID e fazia o novo insert na outra tabela com este ID.. mas em ASP.NET não sei como fazer Compartilhar este post Link para o post Compartilhar em outros sites
Cidre 0 Denunciar post Postado Janeiro 10, 2007 O que eu acho que seria interessante e mais rápido em termos de performance é você criar uma Procedure no Banco de Dados que faça esse Insert e já te retorne o ID do registro, no .Net você só chamaria essa Procedure passando os parâmetros dela e já teria o ID dela http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
dilonghi 0 Denunciar post Postado Janeiro 10, 2007 Bah Boa ideia, cara so bem iniciante em ASP.NET... tu tem um exemplo desse codigo para me passar, ou algum tutorial por ai que fale disso?agilizaria o processo.. hehheAgradeço Compartilhar este post Link para o post Compartilhar em outros sites
dilonghi 0 Denunciar post Postado Janeiro 11, 2007 Consegui o que eu queria com um parceiro, vou postar aqui caso alguem tenha a mesma dúvida: Recuperar ID após insert Insert: Dim comando As New SqlCommand ("Insert into TABELA (SIGLA, Telefone, NomeGuias, Localizacao, Nome, DATA_CADASTRO) "& _"Values ('"& Sigla.text &"', '"& Telefone.text &"', '"& NomeGuias.text &"', '"& Localizacao.text &"', '"& Nome.text &"', '"& dDataAtual &"') select @@identity", conexao)Dim retorno as object try conexao.Open() retorno = comando.ExecuteScalar() catch ex as Exception lblMessage.text = "Erro ao acessar a base" end tryObserverm no código o " select @@identity ", isso recupera o id baseado na chave.a parte " retorno = comando.ExecuteScalar() " é responsável por executar o insert e retornar o ID armazendo em 'retorno'. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago.net 0 Denunciar post Postado Janeiro 16, 2007 Lembrando que select @@identity só serve no sql, para o oracle deve ser :nomedasequence.currval Compartilhar este post Link para o post Compartilhar em outros sites
acn89 0 Denunciar post Postado Novembro 18, 2008 Consegui o que eu queria com um parceiro, vou postar aqui caso alguem tenha a mesma dúvida: Recuperar ID após insert Insert: <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>Dim comando As New SqlCommand ("Insert into TABELA (SIGLA, Telefone, NomeGuias, Localizacao, Nome, DATA_CADASTRO) "& _ "Values ('"& Sigla.text &"', '"& Telefone.text &"', '"& NomeGuias.text &"', '"& Localizacao.text &"', '"& Nome.text &"', '"& dDataAtual &"') select @@identity", conexao) Dim retorno as object try conexao.Open() retorno = comando.ExecuteScalar() catch ex as Exception lblMessage.text = "Erro ao acessar a base" end try </div> Observerm no código o " select @@identity ", isso recupera o id baseado na chave. a parte " retorno = comando.ExecuteScalar() " é responsável por executar o insert e retornar o ID armazendo em 'retorno'. Abraços Correto, estou com o mesmo problema e gostaria de uma dica... como declarou o procedimento ExecuteScalar()? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites