1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Gravar valor de radiobutton em VB 2008

Discussão em 'Programação' iniciada por Fil__, 7 de Outubro de 2008. (Respostas: 26; Visualizações: 2695)

  1. Fil__

    Fil__ Power Member

    Malta tenho num form dois radiobutton em que um diz "Sim" e outro "Nao". Tenho na minha BD um campo chamado garantia. Tanto no databinding do "Sim" como do "Nao" tenho a opçao "Checked" e "DsObra - OBRA.GARANTIA" seleccionado. Ora o que acontece e que ao gravar a obra ele nao guarda a opcao tomada (seja o Sim ou o Nao) e nao percebo porque. O que estarei a fazer mal? Podem ajudar-me?
     
  2. alfinete

    alfinete Power Member

    não sei se estou a perceber bem mas é mesmo com checked que isso se faz.

    se o campo da bd for varchar ou string

    Código:
    if (rb.cheched==true)
      camporadio="sim";
     else
        camporadio="Não";
    se o campo da bd for bit

    Código:
    if (rb.cheched==true)
      camporadio=1;
     else
        camporadio=0;
    ambos os radiobutons tem de pertencer ao mesmo groupname(ou algo do genero), é uma propriedade do radio button

    sera isso, em vb 2005 funciona
     
  3. Fil__

    Fil__ Power Member

    ele grava na bd Alfinete. Tive agora a confirmar. So que no form o rb escolhido nao fica preenchido (e como se nao tivesse escolhido nenhuma opçao). Percebes a minha questao?
     
  4. jota WA

    jota WA [email protected] Member

    Boas
    Então a tua questão é sobre como preencher os radio buttons com true ou false dependendo do valor recebido pela BD,certo??Se for isso tens de ler o valor pelo TableAdapter criado pela BindingSource e preencher o radio button consoante o valor,do tipo:
    Código:
    Dim TabelaDados as [B]ODataSetCriado[/B].AlfineteTableAdapter
    Dim LeitorDados as DataTableReader
    LeitorDados = TabelaDados.CreateDataReader
    If LeitorDados.HasRows Then
         LeitorDados.Read()
         If LeitorDados!Garantia = True Then rbSim.Checked = True Else rbNao.Checked = True
         LeitorDados.Close()
    End If
    
    Uma coisa deste género ;)
    Cumps
     
  5. Fil__

    Fil__ Power Member

    Neste momento o codigo que tenho é este

    Código:
        Private Sub RbSim_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RbSim.CheckedChanged
            If RbSim.Checked Then
                Me.RbSim.Checked = True
                Me.DtpDataCompra.Enabled = True
                Me.CboFornecedor.Enabled = True
                Me.TbNFactura.Enabled = True
            End If
        End Sub
    
        Private Sub RbNao_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RbNao.CheckedChanged
            If RbNao.Enabled Then
                Me.DtpDataCompra.Enabled = False
                Me.CboFornecedor.Enabled = False
                Me.TbNFactura.Enabled = False
            End If
        End Sub
    
    A coluna GARANTIA é um Bit
    A BD grava a escolha, so que no form nao fica seleccionada a escolha feita :005:
     
  6. Fil__

    Fil__ Power Member

    Conseguem ajudar?
     
  7. ups

    ups Power Member

    Eu debruçava-me a tentar perceber porque é que o data binding não está a funcionar.

    Como é que estas a fazer o binding?
     
  8. Fil__

    Fil__ Power Member

    Mas nao esta a funcionar? Como assim? O valor fica gravado na bd, eu se escolher "Sim" ele grava na bd o valor 1, se escolher "Nao" ele grava na bd o valor 0. O problema nao é da bd penso eu. No form ele e que nao guarda a opçao feito (escolha de um dos radiobuttons) ja que na bd fica guardado na coluna GARANTIA o valor
     
  9. jota WA

    jota WA [email protected] Member

    Boas
    Mas como estás a ler o valor da BD?Tens o DataSet e um TableAdapter ligado ao BindingSource??
    Cumps
     
  10. Fil__

    Fil__ Power Member

  11. ups

    ups Power Member

    Se mudas o SIm e Nao, isso aparece na base de dados. Nao era o que pretendias? Ou queres que apareca mesmo sim e nao na base de dados em vez de 1 e 0?
     
  12. Fil__

    Fil__ Power Member

    Nao e na base de dados. Quero que no formulario, aquilo que o utilizador vê, surja o radiobutton marcado que o utilizador seleccionou

    [​IMG]

    Percebes a ideia? Como ves na imagem, eu escolho o "Sim", o valor fica gravado na bd mas no form, ao voltar a entrar, o radiobutton "Sim" ja nao esta seleccionado como devia. Alias, nem o "Sim" nem o "Nao"

    Podem ajudar?
    [​IMG]
     
  13. Fil__

    Fil__ Power Member

    Podem ajudar? Please!!
     
  14. ups

    ups Power Member

    Esse é o unico dado que nao é passado para a form?
     
  15. Fil__

    Fil__ Power Member

    Yap, o radiobutton e o unico que nao fica marcado depois de gravado. Pensava que se operava da mesma maneira que o checkbutton mas esses ficam gravados, so o rb e que nao. E nao entendo porque, se tou a fazer algo mal, se nao estou a activar alguma cena...
     
  16. Fil__

    Fil__ Power Member

    Ninguem sabe o que tou a fazer mal? Please, preciso mesmo de ajuda...
     
  17. ByMySlf

    ByMySlf Power Member

    Coloca aqui o pedaço de código onde passas o que está gravado na BD para o radiobutton.
     
  18. Fil__

    Fil__ Power Member

    O unico codigo dos rb e o que ja coloquei acima. As ligaçoes a bd sao feitas com um table adapter e um bindingsource mas fiz atraves dos wizards. Funciona tudo bem menos os radiobuttons e é isso que me mexe com o sistema nervoso
     
  19. ByMySlf

    ByMySlf Power Member

    O código que está em cima é apenas um evento dos radiobuttons. O que eu te pedi é o pedaço de código onde chamas os dados que tens gravados na BD, para posteriormente passares aos radiobuttons ou outros controlos que tenhas no form.
     
  20. Fil__

    Fil__ Power Member

    Bem, foi tudo feito pelos wizards, nao tenho codigo feito "a mao" para passar os dados, foi com os wizards do proprio VS. Inda é possivel descobrir o que esta mal?
     

Partilhar esta Página