none
Levando dados de DataGrid para um WinForm RRS feed

  • Pergunta

  • Pessoal estou com um problema chato de se achar, mas creio que alguém possa matá-lo facilmente.
    Tenho dois forms, um que faz um cadastro e outro que é um localizar, o cara digita alguma letra no campo de busca e ele já abre uma grid com os resultado conforme vai escrevendo, até ai beleza.

    O problema é que eu fiz para que quando ele clicasse duas vezes no campo onde esta a grid ele leve esses dados para o formulário.
    Esta dando um erro de conversão de dados (A conversão do tipo 'DBNull' no tipo 'String' não é válida.) quando ele tenta levar os dados da grid para o formuláriod e cadastro, segue um trexo de código de cada form.

    OBS: Os campos no BD estão todos como Texto. Esta tudo na ordem.

     

    //Este serve para quando a pessoa digitar alguma coisa no campo de busca e popula a grid

        Private Sub txtCampo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCampo.TextChanged

            dgdGrade.DataSource = objCunsulta.Popular_Grade(txtCampo.Text)
            lblqtd.Text = dgdGrade.Rows.Count - 1

        End Sub

    //Aqui são os dados que estão na grid

    Private Sub dgdGrade_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgdGrade.CellDoubleClick

           If qualtela = 1 Then
               frmCadastro.Show()

                frmCadastro.txtCodigo.Text = dgdGrade.CurrentRow.Cells(0).Value
                frmCadastro.txtEmpresa.Text = dgdGrade.CurrentRow.Cells(1).Value
                frmCadastro.txtContato.Text = dgdGrade.CurrentRow.Cells(2).Value
                frmCadastro.mskTelefone.Text = dgdGrade.CurrentRow.Cells(3).Value
                frmCadastro.mskCelular.Text = dgdGrade.CurrentRow.Cells(4).Value
                frmCadastro.txtCargo.Text = dgdGrade.CurrentRow.Cells(5).Value
                frmCadastro.txtEndereco.Text = dgdGrade.CurrentRow.Cells(6).Value
                frmCadastro.txtCep.Text = dgdGrade.CurrentRow.Cells(7).Value
                frmCadastro.mskFax.Text = dgdGrade.CurrentRow.Cells(8).Value
                frmCadastro.txtEmail.Text = dgdGrade.CurrentRow.Cells(9).Value
                frmCadastro.txtEmailAdicional.Text = dgdGrade.CurrentRow.Cells(10).Value
                frmCadastro.txtInf.Text = dgdGrade.CurrentRow.Cells(11).Value

            ElseIf qualtela = 2 Then

                Dispose()

            End If

    End Sub

    Na grid eu criei uma coluna para cada campo e referenciei ao campo no bando de dados, assim fica tudo no esquema.

    Qualquer ajuda é bem vinda.
    Abraço a todos.

    Maciel

     

     

     

    • Movido Ari C. RaimundoModerator sábado, 27 de novembro de 2010 00:21 Movido para fórum apropriado (De:.NET Development - Geral)
    sexta-feira, 26 de novembro de 2010 15:01

Respostas

Todas as Respostas