Database methode, werkt niet..

Status
Niet open voor verdere reacties.

colaboer4

Gebruiker
Lid geworden
16 sep 2006
Berichten
19
Beste Allemaal,

Sinds enige tijd ben ik bezig met een applicatie.
De bedoeling is dat de applicatie zijn informatie ophaalt uit een access database.

In eerste instantie werkte dit naar behoren. Echter dacht ik slim te zijn, en het allemaal wat makkelijker te maken, door een Database class te schrijven.

Echter krijg ik nu allerlei problemen als ik mijn methode gebruik om de database uit te lezen.

De relevante code staat hieronder:

DBClass.cs // De database klasse

Code:
namespace ElcoTool
{
    class DBClass
    {   
        //Variable aanmaken voor de datbase link
        public static OleDbConnection myConDB;
        
        public DBClass()
        {
            //Database connectie opzetten
            myConDB = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=AIB_DB.accdb;Persist Security Info=False");
        }

        public void databaseString()
        {
            myConDB.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nicky\Documents\Visual Studio 2010\Projects\ElcoTool\ElcoTool\AIB_DB.accdb;Persist Security Info=False";
        }

        public void openCon()
        {
            //Database connectie opzetten
            myConDB.Open();
        }

        public void stopCon()
        {
            //Database verbinding sluiten
            myConDB.Close();
        }

        public DataSet getDataSet(string sql, string dataSetNaam)
        {
            //Dataset aanmaken voor het vasthouden van de data
            DataSet dSet = new DataSet();

            //Database connectie openen
            myConDB.Open();

            //Data adapter aanmaken, voor het vullen van de dataset
            SqlDataAdapter sAdapter = new System.Data.SqlClient.SqlDataAdapter(sql, myConDB.ConnectionString);

            //Dataset vullen
            sAdapter.Fill(dSet, dataSetNaam);

            //Database sluiten
            myConDB.Close();

            //Dataset teruggeven
            return (dSet);
        }
    }
}

Constructor van de window w_Studenten.

Code:
public w_Studenten()
        {
            InitializeComponent();
            
            try
            {      
                DataSet query = academieDB.getDataSet("SELECT * FROM studenten","studenten");
                
                DataTable t = new DataTable();
                t = query.Tables["studenten"];

               dgv_StudentInfo.DataSource = t;
            }

            catch (System.Exception error) 
            {
                //Geef error
                MessageBox.Show("Foutmelding: " + error, "Er is iets niet in orde!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Het probleem zit hem volgens mij niet in de methode, maar in het aanroepen ervan. Ik moet eerlijk bekennen dat ik ook geen flauw idee heb, of ik de dataset die gereturned wordt goed op aangroepen.

De error die ik krijg als ik hem run = "Het sleutelwoord wordt niet ondersteund: Provider".

Wie kan mij verder helpen??

Alvast bedankt,

Nicky
 
Opgelost

Beste Allen,

Probleem is inmiddels na 3 dagen ploeteren opgelost. Het was vrij simpel.
Code:
 //Data adapter aanmaken, voor het vullen van de dataset
            SqlDataAdapter sAdapter = new System.Data.SqlClient.SqlDataAdapter(sql, myConDB.ConnectionString);

Het zat in bovenstaande code. SqlDataAdapter moest OleDbAdapter zijn. Omdat er een acces database achter zit.

Probleem is dus opgelost.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan