Usuário com melhor resposta
Exibir dados access em um formulario através do datagridview

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.
- Editado Marcos Aurelio C domingo, 9 de setembro de 2012 03:06
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
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
- Editado Janderson Candido de Mattos domingo, 9 de setembro de 2012 01:56
- Sugerido como Resposta Janderson Candido de Mattos domingo, 9 de setembro de 2012 17:27
-
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