Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Korma Silser

[Resolvido] Problema para carregar campos no formulario depois al

Recommended Posts

Ola, eu outra vez :)

 

Agora eu estou com problema na hora de alterar algum dado, é o seguinte:

 

Quando eu faço a alteração da o erro: No data exists for the row/column, mas isso só acontece no campo nome os outros eu consigo fazer a alteração normalmente.

 

Depois quando eu abro minha aplicação novamente o campo nome aparece alterado. Fiz o debug e me parece que o erro tem alguma relação com o carregamento do grid.

 

Funciona assim: Quando eu clico em um contato no grid o mesmo é carregado para o formulario, o erro acontece na hora de carregar os campos no formulario.

 

Código para carregar os campos.

 

Private Sub carrCampos()

       Dim conexao As New OleDbConnection
       Dim comando As New OleDbCommand
       Dim leitor As OleDbDataReader
       'Dim da As OleDbDataAdapter = New OleDbDataAdapter
       'Dim ds As DataSet = New DataSet

       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 Nome = '" & dgvContato.CurrentRow.Cells(0).Value & "'"
       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")
       cbxReferencia.Text = leitor("Referencia")
       cbxSexo.Text = leitor("Sexo")
       dtpCad.Value = leitor("Dt_Cad")
       dtpNasc.Value = leitor("Dt_Nasc")
       codCtto = leitor("Cod_Ctto")

       leitor.Close()
       conexao.Close()

   End Sub

 

Código para a alteração:

 

Dim conexao As New OleDbConnection
       Dim comando As New OleDbCommand
       Dim cmdNonQuey As Integer

       conexao.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=G:\Curso_VB.Net\Projetos\Agenda\Agenda\BD_Agenda.accdb"
       conexao.Open()

       comando.CommandText = "Update TB_Ctto Set Nome = '" & txtNome.Text & "' ," & _
                                                 "Tel_Res = '" & mskTelRes.Text & "' ," & _
                                                 "Tel_Cel = '" & mskTelCel.Text & "' ," & _
                                                 "Dt_Nasc = '" & dtpNasc.Text & "' ," & _
                                                 "Dt_Cad = '" & dtpCad.Text & "' ," & _
                                                 "Referencia = '" & cbxReferencia.Text & "' ," & _
                                                 "Sexo = '" & cbxSexo.Text & "' ," & _
                                                 "Email = '" & txtEmail.Text & "' " & _
                                                 "Where Cod_Ctto = " & codCtto

       comando.CommandType = CommandType.Text
       comando.Connection = conexao

       Try
           cmdNonQuey = comando.ExecuteNonQuery
       Catch ex As Exception
           MessageBox.Show("Erro ao salvar dados no Banco de Dados: " & ex.Message)

           Return
       End Try
       MessageBox.Show(String.Format("Dados salvos com sucesso! - {0} Registros atualizados.", cmdNonQuey))
       carrGrid()
       conexao.Close()

 

Código de carregamento do grid.

 

Private Sub carrGrid()

       'Variavel de conexão com o BD
       Dim conexao As New OleDbConnection
       'Criando um DataAdapter
       Dim da As OleDbDataAdapter = New OleDbDataAdapter
       'Criando um DataSet
       Dim ds As DataSet = New DataSet

       'String de conexão com o BD
       conexao.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=G:\Curso_VB.Net\Projetos\Agenda\Agenda\BD_Agenda.accdb"

       'Atribuindo ao meu DataAdapter meu comando SQL e minha conexão
       da.SelectCommand = New OleDbCommand("Select Nome, Tel_Res, Tel_Cel, Referencia From TB_Ctto Order By Nome", conexao)

       'Meu DataAdapter conecta com o BD, abre e fecha a conexão e executa o comando
       da.Fill(ds, "TB_Ctto")
       'Carregando para o meu Grid os dados selecionados da minha tabela com o comando
       dgvContato.DataSource = ds.Tables("TB_Ctto")

       'Alterando o cabeçalho do Grid
       dgvContato.Columns(0).HeaderText = "Nome"
       dgvContato.Columns(1).HeaderText = "Tel Residencial"
       dgvContato.Columns(2).HeaderText = "Celular"
       dgvContato.Columns(3).HeaderText = "Referencia"

   End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente substituir o:

 

ds.Tables("TB_Ctto")

 

por:

 

ds.Tables(0)

 

Agora, qual dos fragmentos a seguir da o erro? Carregar os campos, o grid ou alterar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.