Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C#] Errore su oggetto....

    Ciao a tutti ...
    qualcuno mi sa dire cosa significa questo errore:

    Riferimento a un oggetto non impostato su un'istanza di oggetto.

    questo errore mi viene dato in compilazione su questa riga di codice...


    DataRow DBRows;
    DBRows = base.MyDataTable.NewRow();


    indicazioni?

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    L'errore significa che dell'oggetto base.MyDataTable non ne è stata fatta alcuna new

  3. #3
    io ho valorizzato (new) l'oggetto mydatatable all'interno della classe base con il procedimento classico...


    DataTable mydatatable = new DataTable();

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da EmanueleTo
    io ho valorizzato (new) l'oggetto mydatatable all'interno della classe base con il procedimento classico...
    Sei sicuro che questa istruzione venga eseguita prima di quella dove si tenta di accedere all'oggetto?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Per risponderti con chiarezza posto il codice, dato che a me (ma sicuramente prendo un abbaglio) sembra proprio di si..... cosi ne approfitto per sapere se il codice che ho scritto è ben impostato!



    codice:
    using System;
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;
    
    
    namespace TeaCon01
    {
    	public class GestiBaDa : ConnDB
    	{
       	        private string dbrecordset;
    		private string tsqlstringa;
    
    		public GestiBaDa() : base ()
    		{
    			// TODO: aggiungere qui la logica del costruttore
    			
    		}
    
    		public string DBRecordset
    		{
    			get
    			{
    				return dbrecordset;
    			}
    			set
    			{
    				dbrecordset = value;
    			}
    		}
    
    		public string TSQLStringa
    		{
    			set
    			{
    				tsqlstringa = value;
    			}
    		}
    
    		public void InserisciDati(string [,] arrayElem, string nomeTabellaDB)
    		{
    
           		        base.tableNameDB = nomeTabellaDB;
    			base.Connessione();
    
    /// l'errore mi viene dato su queste due righe di codice, che mi sembrano caricate bene
    /// dato che sono richiamate dopo la valorizzazione della classe base
    
    			DataRow DBRows;
    			DBRows = base.MyDataTable.NewRow();
    
         		try
    			{
    				DBRows["NomeIscritto"] = arrayElem[0,1];
    				DBRows["CognomeIscritto"] = arrayElem[1,1];
    				DBRows["IndirizzoIscritto"] = arrayElem[2,1];
    				DBRows["NCivicoIscritto"] = arrayElem[3,1];
    				DBRows["CAPIscritto"] = arrayElem[4,1];
    	    		DBRows["CittaIscritto"] = arrayElem[5,1];
    				DBRows["ProvIscritto"] = arrayElem[6,1];
    				DBRows["EMailIscritto"] = arrayElem[7,1];
    				DBRows["URLSitoIscritto"] = arrayElem[8,1];
    				DBRows["DataNascitaIscritto"] = arrayElem[9,1];
    				DBRows["EtaIscritto"] = arrayElem[10,1];
    				DBRows["TelefonoCasaIscritto"] = arrayElem[11,1];
    				DBRows["CellulareIscritto"] = arrayElem[12,1];
    				DBRows["FaxIscritto"] = arrayElem[13,1];
    				DBRows["NoteIscritto"] = arrayElem[14,1];
    				DBRows["SessoIscritto"] = arrayElem[15,1];
    			}
    			catch
    			{
    				throw;
    			}
    			
    				base.MyDataTable.Rows.Add(DBRows);
    				OleDbCommandBuilder  DBCommBuild  = new OleDbCommandBuilder();
    				base.Adattatore.Update(MyDataSet);
    
    
    		}
    
    	}
    
    
    
    
    	public class ConnDB
    	{
            private string tablenamedb;
    		private OleDbDataAdapter myadattatore;
    		private DataSet mydataset;
    		private DataTable mydatatable;
    		private DataRow mydatarow;
    
    		public string tableNameDB
    		{
    			get
    			{
    				return tablenamedb;
    			}
    			set
    			{
    				tablenamedb = value;
    			}
    		}
    		public OleDbDataAdapter Adattatore
    		{
    			get
    			{
    				return myadattatore;
    			}
    		}
    		public DataSet MyDataSet
    		{
    			get
    			{
    				return mydataset;
    			}
    		}
    		public DataTable MyDataTable
    		{
    			get
    			{
    				return mydatatable;
    			}
    		}
    		public DataRow MyDataRow
    		{
    			get
    			{
    				return mydatarow;
    			}
    		}
    		public ConnDB()
    		{
    
    		}
    
    		public void Connessione() 
    		{
    			try
    			{
    				string DBConnString;
    				string sqlStringaDB = "SELECT * FROM ";
    
    				DBConnString = @"Provider=Microsoft.jet.oledb.4.0;data source=C:\Documents and Settings\Emanuele\Documenti\Visual Studio Projects\WindowsApplication4\TeCoDaBa\TeaConDB.mdb;Mode=ReadWrite|Share Deny None;Jet OLEDB:Engine Type=5";		
    				OleDbConnection DBConnect = new OleDbConnection(DBConnString);
    				DBConnect.Open();
    				sqlStringaDB = sqlStringaDB + tablenamedb;
    			    OleDbDataAdapter myadattatore = new OleDbDataAdapter(sqlStringaDB, DBConnect);
    				DataSet mydataset = new DataSet(tablenamedb);
    				myadattatore.FillSchema (mydataset, SchemaType.Source, tablenamedb);
    				myadattatore.Fill (mydataset, tablenamedb);
    				DataTable mydatatable = new DataTable();
    				mydatatable = mydataset.Tables[tablenamedb];
    
    			}
    			catch(Exception ex)
    			{
    				throw;
    			}
    		}
    		
    	}
    }

  6. #6
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    Se tu nel try che c'è nel metodo Connessione() fai

    codice:
    DataTable mydatatable = new DataTable();
    vai a definire una nuova variabile il cui scope è limitato al try.
    Dovresti mettere solo

    codice:
    this.mydatatable = new DataTable();
    Ciao

  7. #7
    creo una nuova variabile? non valorizzo quella esistente ?
    ah!
    praticamente devo invece fare solo riferimento alla variabile contenuta nella classe Connessione(), cosa che se non sbaglio, fa appunto il this.....

    grazie

  8. #8
    ho apportato le modifiche suggerite e lo scoglio l'abbiamo passato...

    pero scusate..il comando Update del metodo Adapter, non carica il dataset nella tabella?

    a me da questo errore...
    eppure ho valorizzato seguendo il suggerimentoanche gli altri elementi della mia classe....



    Update non è in grado di trovare TableMapping['Table'] o DataTable 'Table'.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.