Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ar62

Retornando o valor do campo Identity do Banco de Dados Sql Server

Recommended Posts

Ola Pessoal, deparei com essa necessidade, como minha chave primaria e gerada automaticamente pelo banco de dados, vou precisar capturar esta chave quando dentro do codigo fonte passar esta chave para um campo string registroacessado.

 

Exemplo:

Quando estiver no Botao_Novo registro capturar esse código e grava-lo no campo registroacessado

tentei fazer dessa maneira

string Log_RegAcessado = GridView1.SelectedRow.Cells[1].Text;
fico no aguardo por postarem no auxílio, grato a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Pessoal, encontrei a funcionabilidade da qual precisava, agora estou precisando que este metodo tambem seja usado para UPDATE E DELETE, tentei usa-lo modificando conforme as minhas necessidades e não consegui concluir com sucesso, caso possa orientar-me, agradeço

 

using (SqlConnection Conn = new SqlConnection(sConnectionString)){	string sSQL = @"INSERT INTO usuarios (nome, email) VALUES (@nome, @email)  SET @id = SCOPE_IDENTITY()";	SqlCommand cmd = new SqlCommand(sSQL, Conn);	cmd.Parameters.AddWithValue("@nome", "Cesar Cassiano");	cmd.Parameters.AddWithValue("@email", "contato@cbsa.com.br"); cmd.Parameters.AddWithValue("@id", 0).Direction = ParameterDirection.Output;	Conn.Open();	cmd.ExecuteNonQuery(); int id = Convert.ToInt32(cmd.Parameters["@id"].Value); 	Conn.Close();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira o "@" da query.

 

string sSQL = "INSERT INTO usuarios (nome, email) VALUES (@nome, @email)  SET @id = SCOPE_IDENTITY()";	SqlCommand cmd = new SqlCommand(sSQL, Conn);	cmd.Parameters.AddWithValue("@nome", "Cesar Cassiano");	cmd.Parameters.AddWithValue("@email", "contato@cbsa.com.br");        cmd.Parameters.AddWithValue("@id", 0);	Conn.Open();	cmd.ExecuteNonQuery(); int id = Convert.ToInt32(cmd.Parameters["@id"].Value); 	Conn.Close();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola KhaosDoctor, vou poder essar esta mesma rotina da qual descrito acima para capturar o registro corrente tanto no Update e Delete?

Qual é a diferença usando o @, como venho de outra tecnologia, estou aprendendo os conceitos da programação. Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

No C# O @ significa que tudo será uma string, isso é muito usado quando temos caminhos de arquivo que contém '/' que, no C#, é reconhecido como um simbolo de escape, ou quando temos que usar as aspas dentro da string. Algumas vezes isto interfere com o comando pois ele é processado de forma diferente de uma string normal, então por isso é melhor deixar sem @ para as querys.

 

Na verdade cara, para você capturar o ultimo ID você precisaria fazer outra query, SELECT MAX(ID) FROM tabela, e não pegar o parâmetro, uma vez que você definiu o ID como 0 ali...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola KhaosDoctos, fico grato pelas orientações, segui seus passos, retirei o simbolo @, quanto ao select Max, para mim o correto foi estar praticando o que havia deixado no post, pois no momento da inclusão preciso pegar o registro que esta sendo gerado no momento da inclusão para que seja gravado no processo do qual esta em andamento naquele instante, ou poderia tambem seguir sua orientação pegar o ultimo registro e adicionar um para o novo registro gerado que tambem seria o mesmo processo de gerar o novo registro, mais agradeço a todas as dicas que para mim foi de fundamental importância, fico grato por suas dicas, abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.