|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
[vb.net] DataTable non riconosciuta....
Mi succede una cosa strana...nel mio programma ho creato una classe (ClasseStandard) la quale contiene la funzione di aggiornamento del mio database, cioè parte da una Datatable, vede se ci sino dei cambiamenti e poi si collega al DB per aggiornarlo...la funzione all'interno della classe è questa:
------------------------------------------------------------------- Public Class ClasseStandard Public dsInt As New DataSet Public daInt As New OleDb.OleDbDataAdapter Public Cn As New OleDbConnection Public TableInt As DataTable 'sub per l'aggiornamento del database access e per tutte le modifiche apportate alla tabella Public Function AggiornaDB(ByVal da As OleDb.OleDbDataAdapter, ByVal ds As Data.DataSet, ByVal NomeTabella As String, Optional ByVal AskForSave As Boolean = False) As Integer 'verifica se sono state apportate modifiche alla tabella specificata e nel caso salva Dim dt As DataTable Dim Choice As MsgBoxResult = MsgBoxResult.Yes Try dt = ds.Tables(NomeTabella).GetChanges() If Not IsNothing(dt) Then 'devi controllare l'insieme delle righe modificate..se ce ne sono salvi altrimenti no If AskForSave Then 'chiedo se salvare le modifiche Choice = MessageBox.Show("Salvare tutte le modifiche?", "Salvare Database...", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) End If If Choice = MsgBoxResult.Yes Then Return da.Update(ds.Tables(NomeTabella)) 'ORA HA AGGIORNATO CON LE MODIFICHE SUL TUO DB ACCESS! 'torna il numero di righe salvate End If End If Catch err As Exception MsgBox(err.Message, MsgBoxStyle.Critical, "Errore...") End Try End Function end class ---------------------------------------------------- quando vado ad inserire un nuovo record nel mio DB io vado poi a salvare i cambiamenti nella tabella con la funzione sopra e quindi richiamo nell'evento click del tasto ok la funzione AggiornaDB --------------------------------------------------- Public cl1 As new ClasseStandard cl1.AggiornaDB(cl1.daInt, cl1.dsInt, "TblInt", False) ----------------------------------------------------- dove ovviamente cl1 è l'istanza alla classe standard... solo che quando arriva alla valorizzazione di tb all'interno della funzione AggiornaDB mi dice "object reference not set to an istance of an object", in pratica non riconosce il NomeTabella nella funzione AggiornaDB. La cosa strana che se io la funzione AggiornaDB c'e l'ho all'interno di un modulo la cosa funziona...cosa può essere??l'istanza alla classe l'ho fatta |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Città: Mantova
Messaggi: 570
|
il dataset dovresti passarlo alla funzione per referenza, non per valore.
prova e fammi sapere.. ciao
__________________
"Il saggio va per il mondo come un'ape che coglie il nettare dei fiori lasciando intatti la loro bellezza e il loro profumo." (Buddha -Dhammapada) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:17.


















