none
Verificar pendencias no datagridview RRS feed

  • Pergunta

  • Ola,

    tenho uma função que verificar alterações, exclusões e adições no banco de dados

    passo o dataset em questão como parametro mas ele me apresenta um erro na seguinte linha

     

      ' Try
      Dim LinhasModificadas As Integer = 0
      Dim LinhasAdicionadas As Integer = 0
      Dim LinhasDeletadas As Integer = 0
    
      <strong>LinhasDeletadas = DataSetBD.Tables(0).Select("", "", DataViewRowState.Deleted).Length</strong>
      LinhasAdicionadas = DataSetBD.Tables(0).Select("", "", DataViewRowState.Added).Length
      LinhasModificadas = DataSetBD.Tables(0).Select("", "", DataViewRowState.ModifiedCurrent).Length
    
      If (LinhasModificadas > 0 Or LinhasAdicionadas > 0 Or LinhasDeletadas > 0) Then
       Return True
      Else
       Return False
      End If
    
      ' Catch ex As Exception
      MsgBox("Erro ao acessar banco de dados", MsgBoxStyle.Critical, "Verificar pendencias no banco")
      ' Return False
    
      ' End Try
    
    <br/>
    
    <br/>
    
     Private Sub Chapas_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
      If VerificaPendentesGrid(DataSetChapas) = True Then
       Dim Resp As DialogResult
    
       Resp = MessageBox.Show("Deseja salvar as alterações realizadas?", "Alterar cadastro de chapas", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
       If Resp = Windows.Forms.DialogResult.Yes Then
        SalvaAoSair(DataSetChapas, AdapterChapas)
       End If
    
    
      End If
    
     End Sub
    
    
    
    erro: Referência de objeto não definida para uma instância de um objeto.
    
    
    

     


    Bruno Gaiola Domus & Lepton Des. Software
    terça-feira, 8 de fevereiro de 2011 17:33

Todas as Respostas

  • Ola Bruno.

    Onde você declarou o seu dataset DataSetBD?

    Pelo erro parece que ele esta nulo, como se não tivesse sido declarado corretamente.

    quinta-feira, 10 de fevereiro de 2011 11:54
  • Entao eu declaro ele 

    antes de começar a rotina

     

    por exemplo

     

     Public DataSetChapas As DataSet

        Public AdapterChapas As OleDbDataAdapter

     

        Private Sub Chapas_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

     

            If (VerificaPendentesGrid(DataSetChapas) = True) Then

                Dim Resp As DialogResult

     

                Resp = MessageBox.Show("Deseja salvar as alterações realizadas?", "Alterar cadastro de chapas", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

                If Resp = Windows.Forms.DialogResult.Yes Then

                    SalvaAoSair(DataSetChapas, AdapterChapas)

                End If

            End If

        End Sub

     

    End Class


    Bruno Gaiola Domus & Lepton Des. Software
    quinta-feira, 10 de fevereiro de 2011 14:07
  • carrego a grid com este codigo

     

     

     

        Public Shared Sub CarregaGridBD(ByVal Banco As String, ByVal DataGridViewBD As DataGridView, ByVal Tabela As String, ByVal DataSetBD As DataSet, ByVal AdapterDB As OleDbDataAdapter)

            Try

                Dim AccessConnection As OleDbConnection

                Dim oledbCmdBuilder As OleDbCommandBuilder

     

                Dim con As String = ("Provider=Microsoft.Jet .OLEDB.4.0;Data Source= " & Banco)

                AccessConnection = New OleDbConnection(con)

                AccessConnection.Open()

     

                AdapterDB = New OleDbDataAdapter("select * From " & Tabela, AccessConnection)

     

                'Necessário para salvar alterações na Grid

                oledbCmdBuilder = New OleDbCommandBuilder(AdapterDB)

                DataSetBD = New DataSet

                AdapterDB.Fill(DataSetBD)

                DataGridViewBD.DataSource = DataSetBD.Tables(0)

            Catch ex As Exception

                MsgBox("Erro ao acessar banco de dados", MsgBoxStyle.Critical, "Carregar grid")

     

                Exit Sub

            End Try

     

        End Sub

     

     

     

      Private Sub Chapas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            CarregaGridBD("cadastro.mdb", DataGridChapas, "Chapas", DataSetChapas, AdapterChapas)

        End Sub



    Bruno Gaiola Domus & Lepton Des. Software
    quinta-feira, 10 de fevereiro de 2011 14:08