Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cardoso12

Consultar valor Sim/Não de uma DataGridView

Mensagens Recomendadas

cardoso12

É assim tenho uma base de dados com um campo do genero sim/nao e utilizo uma datagridview para mostrar esses valores, consigo atribuir esses valores a variaveis, menos o campo sim/nao, queria saber uma maneira de conseguir ir buscar aquela informação, uso este codigo

Dim Num_Int_Procs As Integer
        Dim Num_Servico As Integer
        Dim Servico As String
        Dim Honorarios As String
        Dim Ficheiro As String
        Dim Notas As String
        Dim Pago As Boolean


        Try

                   If DataGridView2.Rows(e.RowIndex).Cells(5).Value.Equals(Boolean.FalseString) Then
                Pago = False
            Else
                Pago = DataGridView2.Rows(e.RowIndex).Cells(5).Value

            End If


            Me.Cursor = Cursors.AppStarting
            varprocesso = Num_Int_ProcessoTextBox.Text
            Dim form As New insservicosprocessos
            form.MdiParent = Principal
            form.Show()



            form.Alterar(Num_Int_Procs, Num_Servico, Servico, Honorarios, Ficheiro, Notas, Pago)
            Me.Cursor = Cursors.Default

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

É o campo 5 que vai guardar na variavel Pago

Se alguem puder ajudar agradecia imenso

EDIT: GeSHi adicionado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Andrepereira9

Boas

Troca isto:

Try
      If DataGridView2.Rows(e.RowIndex).Cells(5).Value.Equals(Boolean.FalseString) Then
           Pago = False
     Else
           Pago = DataGridView2.Rows(e.RowIndex).Cells(5).Value
      End If

Por isto:

Try
     If DataGridView2.Rows(0).Cells(4).Value = True Then
          Pago = True
     Else
          Pago = False
     End If


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

Podes fazer directo

Pago = Convert.ToBoolean(DataGridView2.Rows(e.RowIndex).Cells(5).Value)


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cardoso12

estive a fazer 1 debug passo a passo e ele nao esta a dar valor aquela celula, mas na datagridview aparece la a chekbox marcada com 1 visto e na bd esta la o sim

nao sei que se passa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cardoso12

sim isso esta certo, mas no codigo depois ao atribuir o valor a variavel pago o debug diz que nao tem valor nenhum diz que ta nulo e da erro a dizer que dbnull nao pode ser convertido em boolean

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cardoso12

pois mas para os outros valores ele da tudo bem, nao percebo porque só no valor sim /nao ele diz que esta vazio :/

ca para mim vou ter de fazer 1 select para ir buscar os valores

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

Não é necessário, basta verificar

If DataGridView2.Rows(e.RowIndex).Cells(5).Value Is DbNull.Value Then
    'Não tem nenhum valor
Else
    'Tem valor
End If


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cardoso12

mas no datagrid ele tem valor e na bd tb só nao percebo porque depois diz que o campo nao tem nada é só isso porque valores ele tem

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Andrepereira9

Boas

Quantas colunas tem a tua datagrid?


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Caça

mas no datagrid ele tem valor e na bd tb só nao percebo porque depois diz que o campo nao tem nada é só isso porque valores ele tem

Ou não estás a ver na mesma BD, ou estás a confundir-te, olha que o programa tem sempre razão...


Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cardoso12

tem 7 e eu ao fazer 1 duplo click na datagrid ela vai atribuir os valores selecionados em variaveis, funciona tudo certo para os outros campos, mas para o campo de sim/nao nao esta a funcionar, no datagrid aparecem os valores corretos, mas ao fazer o duploclick ele diz que o campo sim/nao esta vazio uso este codigo

 Private Sub DataGridView2_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellDoubleClick
        Dim Num_Int_Procs As Integer
        Dim Num_Servico As Integer
        Dim Servico As String
        Dim Honorarios As String
        Dim Ficheiro As String
        Dim Notas As String
        Dim Pago As Boolean


        Try

            If DataGridView2.Rows(e.RowIndex).Cells(0).Value.Equals(DBNull.Value) Then
                Num_Int_Procs = (vbNullString)
            Else
                Num_Int_Procs = DataGridView2.Rows(e.RowIndex).Cells(0).Value
            End If

            If DataGridView2.Rows(e.RowIndex).Cells(1).Value.Equals(DBNull.Value) Then
                Num_Servico = (vbNullString)
            Else
                Num_Servico = DataGridView2.Rows(e.RowIndex).Cells(1).Value
            End If

            If DataGridView2.Rows(e.RowIndex).Cells(2).Value.Equals(DBNull.Value) Then
                Servico = (vbNullString)
            Else
                Servico = DataGridView2.Rows(e.RowIndex).Cells(2).Value
            End If

            If DataGridView2.Rows(e.RowIndex).Cells(3).Value.Equals(DBNull.Value) Then
                Honorarios = vbNull
            Else
                Honorarios = DataGridView2.Rows(e.RowIndex).Cells(3).Value
            End If

            If DataGridView2.Rows(e.RowIndex).Cells(4).Value.Equals(DBNull.Value) Then
                Ficheiro = (vbNullString)
            Else
                Ficheiro = DataGridView2.Rows(e.RowIndex).Cells(4).Value
            End If

            If DataGridView2.Rows(e.RowIndex).Cells(6).Value.Equals(DBNull.Value) Then
                Notas = vbNull
            Else
                Notas = DataGridView2.Rows(e.RowIndex).Cells(6).Value

            End If

            If DataGridView2.Rows(e.RowIndex).Cells(5).Value.Equals(Boolean.FalseString) Then
                Pago = False
            Else
                Pago = DataGridView2.Rows(e.RowIndex).Cells(5).Value

            End If
            ' Pago = Convert.ToBoolean(DataGridView2.Rows(e.RowIndex).Cells(5).Value)

            Me.Cursor = Cursors.AppStarting
            varprocesso = Num_Int_ProcessoTextBox.Text
            Dim form As New insservicosprocessos
            form.MdiParent = Principal
            form.Show()



            form.Alterar(Num_Int_Procs, Num_Servico, Servico, Honorarios, Ficheiro, Notas, Pago)
            Me.Cursor = Cursors.Default

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

EDIT: GeSHi adicionado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cardoso12

esqueçam tudo ja resolvi, fui verificar os valores que o datagrid tinha e ele tinha apenas 6 eu estava a atribuir valores a 7 variaveis dai nao ter valor no pago, desculpem ter-vos feio perder tempo, mas agradeço imenso toda a disponibilidade que tiveram

por vezes estamos tao concentrados no que estamos a fazer que nos escapa estes pequenos detalhes desculpem mesmo e obrigado pela ajuda toda :P

cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.