ALTERAR E GRAVAR NO MESMO BOTAO

16/08/2012

0

Olá pessoal. Me cadastrei hoje no site e ja estou postando um problema aqui :)
Sou programador em VB desde 1996 e atualmente estou migrando meus conhecimentos do VB6 para o VISUAL STUDIO 2012 RC.
Mudou muita coisa em relação ao VB6 e na forma como estou acostumado a programar. Meu dilema é:

Estou desenvolvendo uma nova versão do meu sistema de cobrança, que estou desenvolvendo em VS 2012 e eu quero que na tela de
cadastro de usuários do sistema, o operador ao preencher os dados do form e clicar no botão GRAVAR, o sistema verifique se o usuario existe.. se existe, ALTERA os dados na base e se não existe, GRAVA um novo registro. Isso eh faço de olhos fechados em VB6, já no VS2012 estou empacado e não vou pra frente.. alguem pode me dar um help?

A codificação está abaixo, em arquivo texto :
http://www.ntwsistemas.com/codigos.txt

Abraços !
Roger
Rogerio Silva

Rogerio Silva

Responder

Posts

17/08/2012

Joel Rodrigues

Você está fazendo, atualmente, a inserção independente de condição, certo? No seu código, há um trecho que você pode usar para verificar se o usuário existe:
Dim adptr As New OleDb.OleDbDataAdapter("select * from USUARIOS", cn2)
            adptr.Fill(ds, "USUARIO")
            dt = ds.Tables(0)

Bastaria adicionar uma condição para filtrar só o usuário em questão, após o Fill, se a tabela possuir linhas, é por que o usuário foi localizado, então você faria o update no lugar do insert.
If ds.Tables(0).RowCont > 0 Then
'faz update
Else
'faz insert


O insert você já sabe fazer, o update é a mesma coisa, mudando somente o comando SQL, é claro.

Boa sorte.
Responder

20/08/2012

Heitor Sichin

Rogério bom dia!!!
Você pode fazer igual ao exemplo do Joel, mais como você sabe existem várias maneiras de fazer a mesma coisa, então vou te dar outro exemplo, que é usando "MERGE" isso se você tiver usando o "SQL Server" como Banco de dados. Segue o link do exemplo de como fazer um MERGE:

[url] http://www.linhadecodigo.com.br/artigo/1653/merge-com-sql-server-2008.aspx [/url]

Espero ter ajudado.
Tenha um bom dia!!!
Heitor.
Responder

20/08/2012

Heitor Sichin

Rogério bom dia!!!
Você pode fazer igual ao exemplo do Joel, mais como você sabe existem várias maneiras de fazer a mesma coisa, então vou te dar outro exemplo, que é usando "MERGE" isso se você tiver usando o "SQL Server" como Banco de dados. Segue o link do exemplo de como fazer um MERGE:

[url] http://www.linhadecodigo.com.br/artigo/1653/merge-com-sql-server-2008.aspx [/url]

Espero ter ajudado.
Tenha um bom dia!!!
Heitor.
Responder

21/08/2012

Rogerio Silva

Olá Heitor, obrigado pelo post...
Minha base é Access... então, seu post não serve p/ o Access, não é?
De qualquer forma, obrigado mesmo.
Responder

21/08/2012

Rogerio Silva

Grande Joel.. obrigado pela ajuda.
Vou conferir o seu code no próximo fim de semana.. depois posto o resultado.
Abraço
Responder

21/08/2012

Edson Melo

ola rogerio

resolvi esta sua duvida de uma forma simples e facil.

criei uma variavel onde guardo a letra E e I , onde E e de Editar
e I e de Inserir. quando clico no botão Gravar ele verifica o valor contido na variavel
utiliza a opção certa.

no sistema coloco 2 botão Incluuir e Edita, estes dois botões alimentam a variavel, facil sismples
e funciona perfeitamente.
Responder

21/08/2012

Edson Melo

ola rogerio

resolvi esta sua duvida de uma forma simples e facil.

criei uma variavel onde guardo a letra E e I , onde E e de Editar
e I e de Inserir. quando clico no botão Gravar ele verifica o valor contido na variavel
utiliza a opção certa.

no sistema coloco 2 botão Incluuir e Edita, estes dois botões alimentam a variavel, facil sismples
e funciona perfeitamente.
Responder

03/09/2012

Rogerio Silva

Pessoal, após as dicas acima, continuo empacado...
Alguma dica?
Responder

03/09/2012

Rogerio Silva

Ola Edson...obrigado pela dica, mas eu quero fazer a rotina usando apenas 1 botão.
De qualquer forma, agradeço.
Abraço
Responder

03/09/2012

Rogerio Silva

Joel.. vc teria como incluir esse exemplo que você postou dentro do meu código?
Você pode baixar o arquivo texto no meu link e inserir a codificação no local que você achar indicado e depois me envia o
arquivo texto no meu mail.. pode ser?

Meu mail: ntwsistemas@ntwsistemas.com
ABraço
Responder

03/09/2012

Joel Rodrigues

Rogerio, pegar teu exemplo e adaptar vai dar mais trabalho he he. Vou fazer um exemplo semelhante e compartilho aqui com a galera.
Me dá só um tempinho aí.
Responder

03/09/2012

Joel Rodrigues

Rogerio, como prometido fiz um pequeno exemplo que você pode tomar por base. Eis o link: http://pastebin.com/zR1rq8t0

Boa sorte.
Responder

03/09/2012

Rogerio Silva

Grande Joel..
Obrigado pela força. Vou implementar o modelo do seu post nos meus codigos hoje a noite e amanhã lhe retorno se deu certo.
Abraxxxxxx
Responder

06/09/2012

Valter Furtado

não consegue passar para o form o ID do usuário?? Quando for para editar, o form tera um id e quando for uma ação de inserir o form não terá este id.

Para teste, por que não tenta primeiro colocando este id do usuário dentro de um campo textbox, sendo assim, quando for inserir este textbox estará vazio, e quando for editar ele terá seu valor (id do usuário).

Daí seu método de salvar, irá verificar no objeto usuário se ele possui um id, e tendo um id ele edita ou insere quando não tiver.

Não sei se serve rs... mas faria isso, pelo menos em c#. Na verdade não usaria um textbox, talvez seria um hiddenfield ou id no formulário...

não vi como vc faz, pois aqui temos uma politica de segurança (firewall) que bloqueia tudo... rs
Responder

17/11/2016

Leandro

'Eu faço assim.

Private Sub salvar()
Dim com As OleDbCommand = Nothing
Dim queryResult As Integer
com = New OleDbCommand("SELECT COUNT(*) FROM tblProduto WHERE Codigo ='" & Me.CódigoTextBox.Text & "'", con)
queryResult = com.ExecuteScalar()
Try
If queryResult = 0 Then
cmd = New OleDbCommand("INSERT INTO tblProduto ( Codigo, Nome, Marca, Preco_de_Custo, Preco_de_Venda, Valor_de_Servico, Tipo, Situacao, Data, MargemLucro)" & Chr(13) & "VALUES(CodigoTextBox, NomeTextBox1, MarcaTextBox, Preço_de_CustoTextBox, Preço_de_VendaTextBox, Valor_de_ServiçoTextBox, TipoTextBox, SituaçãoTextBox, Data_da_InclusãoDateTimePicker, TextBox2)", con)
cmd.Parameters.AddWithValue("@Codigo", CódigoTextBox.Text)
cmd.Parameters.AddWithValue("@Nome", NomeTextBox1.Text)
cmd.Parameters.AddWithValue("@Marca", MarcaTextBox.Text)
cmd.Parameters.AddWithValue("@Preco_de_Custo", Preço_de_CustoTextBox.Text)
cmd.Parameters.AddWithValue("@Preco_de_Venda", Preço_de_VendaTextBox.Text)
cmd.Parameters.AddWithValue("@Valor_de_Servico", Valor_de_ServiçoTextBox.Text)
cmd.Parameters.AddWithValue("@Tipo", TipoTextBox.Text)
cmd.Parameters.AddWithValue("@Situacao", SituaçãoTextBox.Text)
cmd.Parameters.AddWithValue("@Data", Data_da_InclusãoDateTimePicker.Text)
cmd.Parameters.AddWithValue("@MargemLucro", TextBox2.Text)
cmd.ExecuteNonQuery()
MsgBox("Produto Cadastrado com Sucesso", vbInformation, "Atenção")
limpar()
Else
Dim atualizar As String
atualizar = (" UPDATE tblProduto SET Nome = '" & NomeTextBox1.Text & "',
Marca = '" & MarcaTextBox.Text & "',
Preco_de_Custo = '" & Preço_de_CustoTextBox.Text & "',
Preco_de_Venda = '" & Preço_de_VendaTextBox.Text & "',
Valor_de_Servico = '" & Valor_de_ServiçoTextBox.Text & "',
Tipo = '" & TipoTextBox.Text & "',
Situacao = '" & SituaçãoTextBox.Text & "',
Data = '" & Data_da_InclusãoDateTimePicker.Text & "',
MargemLucro = '" & TextBox2.Text & "' WHERE Codigo = '" & CódigoTextBox.Text & "'")
cmd = New OleDbCommand(atualizar, con)
cmd.ExecuteNonQuery()
MsgBox("Produto Atualizado com Sucesso", vbInformation, "Atenção")
limpar()
End If
Catch ex As Exception
MsgBox("erro", +ex.Message.ToString())

End Try
End Sub
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar