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

    [C#] Costruttori e parametri

    Buongiorno a tutti.
    Gradirei cortesemente aiuto per capire questa cosa ....

    Ho costruito una classe che si occupa di aprire una tabella, il cui nome è passato come parametro al metodo: però non riesco a capire perchè ho due punti di accesso al parametro quando dovrei averne solo uno (per logica intendo)..

    ecco la mia classe e la chiamata dal form

    -------------- Classe -----------------
    public class ConnDB
    {
    /// <summary>
    /// per generalizzare la classe aggiungere un poarametro in ingresso
    /// che rappresenti il nome della tabella da caricare nell'Adapter
    /// </summary>
    OleDbConnection DBConn = new OleDbConnection();
    OleDbCommand DBComm = new OleDbCommand();
    OleDbDataAdapter DBAdapter = new OleDbDataAdapter();
    OleDbParameter DBParam = new OleDbParameter();
    DataTable DBTable = new DataTable();
    DataSet DBSet = new DataSet();

    private string tablenamedb;

    public string tableNameDB
    {
    get
    {
    return tablenamedb;
    }

    }


    private void ConnDB()
    {
    try
    {
    DBConn.ConnectionString = @"Provider=Microsoft.jet.oledb.4.0;data source="TeaConDB.mdb;Mode=ReadWrite|Share Deny None;Jet OLEDB:Engine Type=5";
    DBAdapter.TableMappings.Add(tablenamedb, tablenamedb);
    DBConn.Open();
    }
    catch(Exception ex)
    {
    throw;
    }
    }

    public void Connessione(string tablenamedb)
    {
    DBComm.CommandText = "SELECT * FROM " + tablenamedb;
    DBComm.Connection = DBConn;
    DBComm.CommandType = CommandType.Text;
    DBAdapter.SelectCommand = DBComm;
    DBSet.DataSetName = tablenamedb;
    DBAdapter.Fill (DBSet);
    }

    }

    --------------- end ------------------------

    Questa invece è la chiamata che faccio dal form....

    ------------------- chiamata ------------------
    private void frmIscrizioniUtenti_Load(object sender, System.EventArgs e)
    {
    TeaCon01.ConnDB pippo = new ConnDB();
    pippo.Connessione = "iscritti";
    pippo.tableNameDB = "iscritti";
    }

    ---------------- fine ---------------------------

    i punti di ingresso sono due (ovviamente ne uso uno alla volta, ma non capisco perchè...

    ogni eventuale ulteriore suggerimetno è gradito!

    grazie

  2. #2
    forse ho scritto una fesseria!!!
    la seconda chiamata (pippo.Connessione (valore) la posso omettere se tolgo il valore come parametro del metodo....
    e quindi richiamo il metodo con ... pippo.Connessione();

    giusto?

  3. #3
    come non detto..risolto....

  4. #4
    non c'ho capito un tubo, l'unica cosa che ho notato è:
    pippo.Connessione = "iscritti";

    quando invece connessione è un metodo :S

  5. #5
    ti ringrazio...
    questo mi rincuora eheheheheheheh
    comunque l'errore era proprio li... avevo classificato come metodo un costruttore...

    pero scusa..se non è chiaro, spiegami come renderlo leggibile...magari a me manca un po di esperienza nel dividere le classi e ordinare il tutto....

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da EmanueleTo
    pero scusa..se non è chiaro, spiegami come renderlo leggibile...
    Più che altro, sei tu a dover spiegare cosa vuoi ottenere, e in tal caso allora sì che è possibile dirti come correggere e migliorare il codice per raggiungere lo scopo richiesto.

    P.S.: quando si pubblica codice, occorre fare uso del tag [CODE]!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    ops...scusate....me ne sono dimenticato...posso continuare su questa discussione o devo aprirne una nuova con un nuovo titolo?

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da EmanueleTo
    ops...scusate....me ne sono dimenticato...posso continuare su questa discussione o devo aprirne una nuova con un nuovo titolo?
    Se ti riferisci al mio ultimo suggerimento, tienilo solo a mente per il futuro.

    Per il resto, se vuoi continuare a discutere di problemi legati a quello che hai proposto, a meno che non sia del tutto differente, puoi continuare questa discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #9
    ok....riprendo da qui!

    ho una confusione abissale in testa!
    io ho programmato per un po in VB (5-6) anche se oggi uso praticamente solo ASP, VBScript, HTML, CSS e linguaggi simili per il mondo internet,con programmi di grafica compresa.
    Per ragioni di lavoro mi ritrovo a 44 anni a dover imparare assolutamente un linguaggio nuovo, il C#...
    ho studiato il libro di Microsoft quello per gli esami di abilitazione, ma sinceramente ho capito di più dai mini corsi on-line che da quel librone.

    Tagliando corto, mi serve aiuto su C# e i database (per ora)!
    Per connettermi ad un DB e attingere dati o caricarlo di dati ho fatto cosi:
    Ho creato una classe per connettermi al DB

    codice:
    	public class ConnDB
    	{
    		OleDbConnection DBConn = new OleDbConnection();
    		OleDbCommand	DBComm = new OleDbCommand();
    		OleDbDataAdapter DBAdapter = new OleDbDataAdapter();
    		OleDbParameter DBParam = new OleDbParameter();			
    		DataTable DBTable = new DataTable();
    		DataSet DBSet = new DataSet();
    
    
    		private string tablenamedb;
    		
    		public string tableNameDB
    		{
    			get
    			{
    				return tablenamedb;
    			}
    			set
    			{
    				tablenamedb = value;
    			}
    		}
    
    
    		public ConnDB()
    		{
    			try
    			{
    				DBConn.ConnectionString = @"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";		
    				DBAdapter.TableMappings.Add(tablenamedb, tablenamedb);
    				DBConn.Open();
    			}
    			catch(Exception ex)
    			{
    				throw;
    			}
    		}
    
    		public DataSet Connessione() 
    		{
    			DBComm.CommandText = "SELECT * FROM " + tablenamedb;
    			DBComm.Connection = DBConn;
    			DBComm.CommandType = CommandType.Text;
    			DBAdapter.SelectCommand = DBComm;
    			DBSet.DataSetName = tablenamedb;
    			DBAdapter.Fill (DBSet);
    			
    			return DBSet;
    		}
    		
    		public void Disconnessione()
    		{
    		 DBConn.Close();
    		}
    ma adesso come faccio a prendere i dati? e a inserirli?

    Ho capito che devo usare il DataSet e il DataRows ma non capisco come....
    perdippiù dato che sto imparando da zero a programmare a oggetti, vorrei sapere se sto scrivendo in modo corretto le varie cose....

    Grazie dell'aiuto... azz...

    EManuele

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.