DataTabel aanroepen vanuit andere classe

Status
Niet open voor verdere reacties.

savant11

Gebruiker
Lid geworden
7 jan 2008
Berichten
153
Je hebt in een classe de volgende regel: DataTable m_dtgebruiker = new DataTable();

De classe: DBBoek:

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
//using System.Data.OleDb.OleDbConnection;
using System.Configuration;
using System.Collections;
//using System.DBBoek;

namespace DatabaseExample2
{
    class DBBoek
    {
       // DBBoek dbBoek = new DBBoek();
        DataTable m_dtgebruiker = new DataTable();        
        OleDbConnection m_cnADONewConnection = new OleDbConnection();
        OleDbDataAdapter m_daDataAdapter = new OleDbDataAdapter();
        Config config = new Config();

        public DBBoek()
        {
            //DBBoek dbBoek = new DBBoek();
            //dbBoek.m_dtgebruiker();
            m_dtgebruiker = new DataTable();
            Config config = new Config();
            OleDbDataAdapter m_daDataAdapter = new OleDbDataAdapter();
            Boek_controller boek_controller = new Boek_controller();
                 

        }

        private  void fclsMain_Load(object sender, System.EventArgs e)
        {
            m_cnADONewConnection.ConnectionString =
                @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\meetSysteem.mdb";
            m_daDataAdapter =
                new OleDbDataAdapter("Select * From gebruiker", m_cnADONewConnection);
            OleDbCommandBuilder m_cbCommandBuilder = new OleDbCommandBuilder(m_daDataAdapter);
            m_daDataAdapter.Fill(m_dtgebruiker);
            //this.ShowCurrentRecord();
        }

        private void fclsMain_Closed(object sender, System.EventArgs e)
		{
			m_cnADONewConnection.Close();
		}

        public void functie()
        {
            DBBoek dbBoek = new DBBoek();
            
            //dbBoek.m_dtgebruiker();

        }

        private void hallo()
        {
            throw new NotImplementedException();
        }
      
		



    }
}

en een classe: Boek_controller:

Code:
using DatabaseExample2;
using DatabaseExample2.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
//using System.Data.OleDb.OleDbConnection;
using System.Configuration;
using System.Collections;


namespace DatabaseExample2
{
    class Boek_controller : DBBoek
    {
        //DBBoek dbBoek = new DBBoek();
        
        Boek boek = new Boek();
        Config config = new Config();
        Boek_controller boek_controller = new Boek_controller();
        //DataTable m_dtgebruiker = new DataTable();
        OleDbConnection m_cnADONewConnection = new OleDbConnection();
        OleDbDataAdapter m_daDataAdapter = new OleDbDataAdapter();
        int m_rowPosition = 0;
        
        //DataTable m_dtContacts = new DataTable();



        public  Boek_controller()
        {
            DBBoek dbBoek = new DBBoek();
            dbBoek.functie();
            


            //InitializeComponent();

        }

        private void fclsMain_Closed(object sender, System.EventArgs e)
        {

            m_cnADONewConnection.Close();
        }


        private void ShowCurrentRecord()
        {
            //DataTable m_dtgebruiker = new DataTable();        

            //DataTable m_dtgebruiker();      

            //dbBoek.functie();
            
            if ( m_dtgebruiker.Rows.Count == 0)
            {
                boek.txtContactname.Text = "";
                boek.txtState.Text = "";
                return;
            }
            
            boek.txtContactname.Text =  m_dtgebruiker.Rows[m_rowPosition]["gebruikersnaam"].ToString();
            boek.txtState.Text = m_dtgebruiker.Rows[m_rowPosition]["wachtwoord"].ToString();
        }

        private void btnMoveFirst_Click(object sender, System.EventArgs e)
        {
            m_rowPosition = 0;
            this.ShowCurrentRecord();
        }

        private void btnSave_Click(object sender, System.EventArgs e)
        {
            //DataTable m_dtgebruiker ();       
            if (!(m_dtgebruiker.Rows.Count == 0))
            {
                m_dtgebruiker.Rows[m_rowPosition]["gebruikersnaam"] = boek.txtContactname.Text;
                m_dtgebruiker.Rows[m_rowPosition]["wachtwoord"] = boek.txtState.Text;
                
                //m_daDataAdapter.Update(m_dtgebruiker);
            }

        }

        public void opslaan()
        {
            //DataTable m_dtgebruiker;       

            DataRow drNewRow = m_dtgebruiker.NewRow();
            drNewRow["gebruikersnaam"] = boek.txtNewContactName.Text;
            drNewRow["wachtwoord"] = boek.txtNewState.Text;
            m_dtgebruiker.Rows.Add(drNewRow);
            m_daDataAdapter.Update(m_dtgebruiker);
            m_rowPosition = m_dtgebruiker.Rows.Count - 1;
            this.ShowCurrentRecord();

        }


       





    }
}

Hoe roep je nou vanuit de classe Boek_controller de tabel: m_dtgebruiker aan, zonder dat je de foutmeling krijgt:

Error 2 'DatabaseExample2.DBBoek.m_dtgebruiker' is inaccessible due to its protection level
 
Hey,

heb je de oplossing al gevonden?

De oplossing is namelijk dat je in de classe DBBoek jouw variable private gemaakt hebt.
dus verander de regel:
DataTable m_dtgebruiker = new DataTable();
naar:
protected DataTable m_dtgebruiker = new DataTable();

Gr,
Mathijs
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan