none
UPDATE COM VARIAVEIS NO VB.NET COMO FAÇO? RRS feed

  • 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!
    quinta-feira, 9 de junho de 2016 03:30

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!

    quarta-feira, 22 de junho de 2016 16:47

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
    quinta-feira, 9 de junho de 2016 14:21
  • 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 é.




    sexta-feira, 10 de junho de 2016 03:06
  • 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!

    quarta-feira, 22 de junho de 2016 16:47