Usuário com melhor resposta
UPDATE COM VARIAVEIS NO VB.NET COMO FAÇO?

Pergunta
-
Olá amigos, estou montando um projeto no qual trabalho com variáveis SQL e preciso passa-lá para o sistema em VB como faço a programação das variáveis não estou conseguindo ele executa o sistema, porem não altera nada no banco de dados.
sql += "SELECT '" & placa1 & "' = placa1, '" & placa2 & "' = placa2 from proprietarios where apartamento = '" & tb_apartamento.Text & "' IF '" & placa1 & "' is NULL Update proprietarios set placa1 = '" & novaplaca & "' where apartamento = '" & tb_apartamento.Text & "' else IF '" & placa2 & "' is NULL Update proprietarios set placa2 = '" & novaplaca & "' where apartamento = '" & tb_apartamento.Text & "' " conectar.Open() comando = New SqlCommand(sql) comando.Connection = conectar comando.ExecuteNonQuery() conectar.Close()
Declarei as variáveis placa1 e placa2 e novaplaca como do tipo String no Visual Studio e no banco está em VARCHAR acredito que seja o erro aqui, porem não consigo resolver. Agradeço desde já a atenção!- Editado Felipe Bastos quinta-feira, 9 de junho de 2016 03:31
Respostas
-
Eu tenho um código aqui que pode auxiliar na sua lógica
Public Sub Alterar() Dim vID As Integer Dim vData As String Dim vPart As String Dim vDescr As String Dim vModelo As String Dim vTipo As String vID = frm_alterar_pecas.txtCod.Text vData = frm_alterar_pecas.lbl_data.Text vPart = frm_alterar_pecas.txtPart.Text vDescr = frm_alterar_pecas.txtDesc.Text vModelo = frm_alterar_pecas.txtModelo.Text vTipo = frm_alterar_pecas.ComboBox1.Text cmd.CommandType = System.Data.CommandType.Text cmd.CommandText = "UPDATE Cadastro SET Data = '" & vData & "', Part = '" & vPart & "', Descricao = '" & vDescr & "', Modelo = '" & vModelo & "', Tipo = '" & vTipo & "' WHERE ID = " & vID & "" cmd.Connection = ConnectData ConnectData.Open() cmd.ExecuteNonQuery() ConnectData.Close() My.Computer.Audio.Play("alterar.wav") MsgBox("Alterado com Sucesso", vbOKOnly, "Alterado!") CarregaGrid() End Sub
Espero ter ajudado! abraço!
- Sugerido como Resposta Robson William SilvaModerator quarta-feira, 22 de junho de 2016 17:19
- Marcado como Resposta Thales F Quintas quarta-feira, 22 de junho de 2016 17:29
Todas as Respostas
-
Bom dia,
Não consegui entende sua consulta...
Não deveria ser algo como?
sql += "SELECT placa1, placa2, from proprietarios where apartamento = '" & tb_apartamento.Text & "' IF placa1 is NULL Update proprietarios set placa1 = '" & novaplaca & "' where apartamento = '" & tb_apartamento.Text & "' else IF placa2 is NULL Update proprietarios set placa2 = '" & novaplaca & "' where apartamento = '" & tb_apartamento.Text & "' "
Crie uma consulta e poste para que possamos te ajudar nos parâmetros.
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Marcado como Resposta Thales F Quintas quinta-feira, 9 de junho de 2016 17:30
- Não Marcado como Resposta Felipe Bastos sexta-feira, 10 de junho de 2016 02:57
-
Então desse jeito que se me mostrou não da certo, pq o IF e Else do SQL só aceita variáveis na consulta. No caso ali, criei as variaveis, PLACA1, PLACA2 E NOVAPLACA, sendo que Placa1 = placa1 (Coluna da tabela), Placa2 = placa2(Coluna da Tabela), NOVAPLACA = tb_placa.text. VARIÁVEIS SQL, CRIADAS EM VB ABAIXO.
Public placa1 As SqlParameter Public placa2 As SqlParameter Public novaplaca As SqlParameter
AÇÃO AO CLICAR NO SALVAR
Private Sub bt_salvar_Click(sender As Object, e As EventArgs) Handles bt_salvar.Click sql += "SELECT '" & placa1 & "' = placa1, '" & placa2 & "' = placa2 from proprietarios where apartamento = '" & tb_apartamento.Text & "' IF '" & placa1 & "' is NULL Update proprietarios set placa1 = '" & novaplaca & "' where apartamento = '" & tb_apartamento.Text & "' else IF '" & placa2 & "' is NULL Update proprietarios set placa2 = '" & novaplaca & "' where apartamento = '" & tb_apartamento.Text & "' " conectar.Open() comando = New SqlCommand(sql) comando.Connection = conectar comando.ExecuteNonQuery() conectar.Close() End Sub
OBS: Na Query do SQL fiz ela dessa forma para testar o código e funcionou.
declare @Placa1 varchar(7), @Placa2 varchar(7); declare @NovaPlaca varchar(7); set @NovaPlaca= 'ZZZ9999'; -- SELECT @Placa1= Placa1, @Placa2= Placa2 from Proprietario where apartamento = 'A-001' -- IF @Placa1 is NULL UPDATE Proprietarios set Placa1= @NovaPlaca where apartamento = 'A-001' else IF @Placa2 is NULL UPDATE Proprietario set Placa2= @NovaPlaca where apartamento = 'A-001' else SELECT 'Não há vaga disponível no estacionamento';
Porém no VB estou errando algo e não sei o que é.
- Editado Felipe Bastos sexta-feira, 10 de junho de 2016 04:23
-
Eu tenho um código aqui que pode auxiliar na sua lógica
Public Sub Alterar() Dim vID As Integer Dim vData As String Dim vPart As String Dim vDescr As String Dim vModelo As String Dim vTipo As String vID = frm_alterar_pecas.txtCod.Text vData = frm_alterar_pecas.lbl_data.Text vPart = frm_alterar_pecas.txtPart.Text vDescr = frm_alterar_pecas.txtDesc.Text vModelo = frm_alterar_pecas.txtModelo.Text vTipo = frm_alterar_pecas.ComboBox1.Text cmd.CommandType = System.Data.CommandType.Text cmd.CommandText = "UPDATE Cadastro SET Data = '" & vData & "', Part = '" & vPart & "', Descricao = '" & vDescr & "', Modelo = '" & vModelo & "', Tipo = '" & vTipo & "' WHERE ID = " & vID & "" cmd.Connection = ConnectData ConnectData.Open() cmd.ExecuteNonQuery() ConnectData.Close() My.Computer.Audio.Play("alterar.wav") MsgBox("Alterado com Sucesso", vbOKOnly, "Alterado!") CarregaGrid() End Sub
Espero ter ajudado! abraço!
- Sugerido como Resposta Robson William SilvaModerator quarta-feira, 22 de junho de 2016 17:19
- Marcado como Resposta Thales F Quintas quarta-feira, 22 de junho de 2016 17:29