Retornat valor apos Insert

21/08/2012

0

Olá sou novo na area e a orientacao a objeto ainda nao ta fluindo bem
entao segue, tenho as seguintes classes
****ENsetores
private _codigo;
private _nome;
public codigo
{ get{return _codigo;}
set{_codigo = value;}
}
public nome
{ get{return _nome;}
set{_nome = value;}
}

****DBsetores
public static void Insert(Ensetores setores)
{
String sSql = "";
sSql = "Insert into setores (set_nome) values (" + setores.nome + ");
if (setores.nome != null && setores.nome !="")
{
conexapo.open();
NpgsqlCommand commando = new NpgsqlCommand(sSql, conexao.getconecao());
commando.ExecuteNomQuery();
conexao.close();
}

*****RNsetores
public void Insert(ENsetores setores)
{
controle_estoque.classeDB.DBsetores.Insert(setores);
}

****codigo do form botao gravar
private void btngravar_Click(object sender, EventArgs e)
{
Ensetores cSetores = new ENsetores();
switch (sOpcao)
{
case "I": // opcao inserir
classeRN.RNsetores.Insert(cSetores);
break;

case "A" // opcao alterar
classeRN.RNsetores.Update(cSetores);
break;
}
Minha duvida
Isso tudo esta funcionando perfeitamente ate momento
Ocorre que no form eu tenho um txtcodigo
e quero carregar o numero do novo registro inserido set_codigo
pelo postgree (banco utilizado) eu fiz
select into setores (set_nome) value (TESTE), SELECT CURRVAL (SETORES_SET_CODIGO_SEQ)
e me retorna o SET_CODIGO do ultimo inserido da sessao

Pergunto
pra capturar isso e jogar no meu form que ainda nao sei como
se alguyem puder ajudar agradeço

Jorge Meneses
Jorge Meneses

Jorge Meneses

Responder

Posts

21/08/2012

Renato Groffe

Jorge,


Não conheço muito bem o Postgre, mas acredito que você poderia fazer o seguinte:
1) Criar uma stored procedure que faz o INSERT e que devolve o valor desse novo registro.
2) Executar a stored procedure via código C# e, a partir do Id que foi gerado, alterar o objeto que você passou como parâmetro, resolvendo assim sua necessidade.

Essa é apenas uma idéia. Normalmente faço isso quando utilizo outros bancos como Sql Server e Firebird.

Espero que isso possa clarear alguma coisa.


Renato
Responder

22/08/2012

Jorge Meneses

Obrigado, mas ja solucionei

****DBsetores
public static void Insert(Ensetores setores)
{
String sSql = "";
sSql = "Insert into setores (set_nome) values (" + setores.nome + ");selecr currval ('setores_set_codigo_seq')";
if (setores.nome != null && setores.nome !="")
{
conexapo.open();
NpgsqlCommand commando = new NpgsqlCommand(sSql, conexao.getconecao());
setores.codigo = Convert.ToInt32(commando.executeScalar());

conexao.close();
}


**** e no form
txtcodigo.text = Convert.ToString(setores.codigo);
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar