none
Visual Basic.Net - Tratamento para Combobox quando não teve item selecionado para gravar o NULL no campo da tabela do BD RRS feed

  • Pergunta

  • Olá pessoal!

    Por favor, me ajudem.

    Preciso de fazer um tratamento nos objetos do tipo Combobox para quando não for selecionado nada seja setado o valor NULL para aplicar um update nos campos relacionados na tabela do banco de dados.

    vejam, tentei fazer um tratamento com IIF, determinado se o valor não foi selecionado ou estiver em branco, set o valor NULL para ser aplicado o update.

    mas não está funcionando, o valor atribuído no campo da tabela fica como em branco, vejam o exemplo da forma de pagamento:& "', [FORMAPAGAMENTO] = '" & IIf(cmbCondicaoPgto.SelectedIndex = -1, DBNull.Value, cmbCondicaoPgto.Text) _

    segue o código por completo

           Try
                conn = New SqlConnection(Strcon)
                conn.Open()
                Dim str As String = "UPDATE [PEDIDOS] SET  " _
                    & "[DATA] = '" & DataHoje _
                    & "', [HORA] = '" & RecebeHorario _
                    & "', [IDCLIENTE] = '" & txtIdCliente.Text _
                    & "', [TOTALITENS] = '" & lblTotalItens.Text _
                    & "', [VALORTOTAL] = '" & lblTotal.Text _
                    & "', [FORMAPAGAMENTO] = '" & IIf(cmbCondicaoPgto.SelectedIndex = -1, DBNull.Value, cmbCondicaoPgto.Text) _
                    & "', [TIPODESCONTO] = '" & cmbTipoDesconto.Text _
                    & "', [VALORDESCDADO] = '" & IIf(txtValorDesconto.Text = "", "0", txtValorDesconto.Text) _
                    & "', [VALORCALCDESCONTO] = '" & DBNull.Value _
                    & "', [VALORTOTALGERAL] = '" & lblTotalLiquido.Text _
                    & "', [CODFUNCCRIOUPEDIDO] = '" & DBNull.Value _
                    & "', [CODFUNCDESCONTODADO] = '" & DBNull.Value _
                    & "', [DATADESCDADO] = '" & DBNull.Value _
                    & "', [STATUSNEGOCIACAO] = '" & cmbStatusNegociacao.Text _
                    & "', [CONDICAOPGTO] = '" & cmbCondicaoPgto.Text _
                    & "', [VENCIMENOPGTO] = '" & txtDataVencimento.Text _
                    & "', [OBSDAPARCELA] = '" & IIf(txtObservacoesParcelas.Text = "", DBNull.Value, txtObservacoesParcelas.Text) _
                    & "', [TIPOPAGAMENTO] = '" & cmbTipoPgto.Text _
                    & "', [OBSERVACAO] = '" & IIf(txtObservacoes.Text = "", DBNull.Value, txtObservacoes.Text) _
                    & "'  WHERE ([IDPEDIDO] = '" & Me.txtNumPedido.Text & "');" _
                    & "SELECT * FROM PEDIDOS WHERE IDCLIENTE = '" & Me.txtIdCliente.Text & "' and IDPEDIDO = '" & Me.txtNumPedido.Text & "'"
                cmd = New SqlCommand(str, conn)
                cmd.ExecuteNonQuery()

            Catch ex As Exception
                MsgBox(ex.Message)
            Finally

                conn.Dispose()
                conn.Close()
            End Try

    quinta-feira, 11 de janeiro de 2018 00:39

Respostas

  • Bom dia.

    Tente trocando .SelectedIndex = -1

    por

    .SelectedValue.ToString = ""


    MARIANO1776

    quinta-feira, 11 de janeiro de 2018 10:42
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta RP Neto quinta-feira, 1 de fevereiro de 2018 20:43
    segunda-feira, 15 de janeiro de 2018 19:52
    Moderador

Todas as Respostas

  • Bom dia.

    Tente trocando .SelectedIndex = -1

    por

    .SelectedValue.ToString = ""


    MARIANO1776

    quinta-feira, 11 de janeiro de 2018 10:42
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta RP Neto quinta-feira, 1 de fevereiro de 2018 20:43
    segunda-feira, 15 de janeiro de 2018 19:52
    Moderador
  • Olá Mariano.

    Desculpa pela demora, testei e deu certo.

    Eu também utilizei o DBNULL, deu certo tnm.

    Obrigado pelo retorno

    quinta-feira, 1 de fevereiro de 2018 20:43
  • Ok, se te ajudou, marque como útil.

    MARIANO1776

    quinta-feira, 1 de fevereiro de 2018 23:49