none
Exibir dados access em um formulario através do datagridview RRS feed

  • Pergunta

  • Ola pessoa. 

    Eu estou fazendo uma agenda de contatos. As informações dos contatos no evento load do formulario são carregas para o DataGridView.

    O que eu to querendo é que os dados do grid apareçam tbm no meu formulario quando eu selecionar no grid determinado contato.

    Esse é o codigo, mas da o erro: Tipo de dados incompatível na expressão de critério.

    Private Sub carrCampos()
    
            Dim conexao As New OleDbConnection
            Dim comando As New OleDbCommand
            Dim leitor As OleDbDataReader
            
            conexao.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=G:\Curso_VB.Net\Projetos\Agenda\Agenda\BD_Agenda.accdb"
            conexao.Open()
    
            comando.CommandText = "Select * From TB_Ctto Where Cod_Ctto = '" & dgvContato.CurrentRow.Selected & "'"
            comando.CommandType = CommandType.Text
    
            comando.Connection = conexao
            leitor = comando.ExecuteReader
            leitor.Read()
    
            txtNome.Text = leitor("Nome")
            txtEmail.Text = leitor("Email")
            mskTelCel.Text = leitor("Tel_Cel")
            mskTelRes.Text = leitor("Tel_Res")
            cbxRefrencia.Text = leitor("Referencia")
            cbxSexo.Text = leitor("Sexo").
            dtpCad.Text = leitor("Dt_Cad")
            dtpNasc.Text = leitor("Dt_Nasc")
            
            leitor.Close()
            conexao.Close()
    
        End Sub
    Desde ja obrigado.

    Programdor .Net iniciante.


    domingo, 9 de setembro de 2012 00:33

Respostas

  • Pessoal consegui resolver o problema.

    A string de comando SQL estava assim:

     comando.CommandText = "Select * From TB_Ctto Where Cod_Ctto = '" & dgvContato.CurrentRow.Selected & "'"

    E tinha que estar assim:

    comando.CommandText = "Select * From TB_Ctto Where Nome = '" & dgvContato.CurrentRow.Cells(0).Value & "'"

    Como o meu grid não tinha a coluna de codigo do contato acho que era onde dava o erro e tambem troquei a seleção ( currentrow.selected) da linha do grid pela a celula( Cells(0) ).

    Deixando aqui meu agradecimento ao Janderson pela ajuda.


    Programdor .Net iniciante.

    • Marcado como Resposta Marcos Aurelio C segunda-feira, 1 de outubro de 2012 23:24
    domingo, 9 de setembro de 2012 17:24

Todas as Respostas

  • E ae cara, blz?

    o que ta vindo nessa sua variável?

    dgvContato.CurrentRow.Selected 

    Ela ta preenchida com o valor certo no momento de montar a consulta?

    Acredito que vc tenha que recuperar o valor de alguma coluna, você poderia fazer desta forma:

    foreach(DataGridViewRow row in DataGridView1.SelectedRows)
    {
        string id = row.Cells["suaColuna"].Value;  
    }

    Fonte: http://stackoverflow.com/questions/10436631/how-to-get-datagridview-current-row-column-value


    Ou desta forma:

    string Value = DataGridView.CurrentRow.Cells[0].value.tostring();


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS



    domingo, 9 de setembro de 2012 01:45
  • Pessoal consegui resolver o problema.

    A string de comando SQL estava assim:

     comando.CommandText = "Select * From TB_Ctto Where Cod_Ctto = '" & dgvContato.CurrentRow.Selected & "'"

    E tinha que estar assim:

    comando.CommandText = "Select * From TB_Ctto Where Nome = '" & dgvContato.CurrentRow.Cells(0).Value & "'"

    Como o meu grid não tinha a coluna de codigo do contato acho que era onde dava o erro e tambem troquei a seleção ( currentrow.selected) da linha do grid pela a celula( Cells(0) ).

    Deixando aqui meu agradecimento ao Janderson pela ajuda.


    Programdor .Net iniciante.

    • Marcado como Resposta Marcos Aurelio C segunda-feira, 1 de outubro de 2012 23:24
    domingo, 9 de setembro de 2012 17:24