OleDbDataAdapter

Status
Niet open voor verdere reacties.

zuttie

Nieuwe gebruiker
Lid geworden
25 mei 2009
Berichten
2
Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Drawing;

namespace Gip2005
{
    class Variabelen
    {
        public static Database db = new Database("gip hotel.accdb");
        public static Paswoord gebruiker;


        public static DataSet dsKlanten, dsPrijzen, dsLanden, dsGemeenten, dsReservatie, dsKamerInvullen, dsLogin;

        public static void KlantenInvullen()
        {
            dsKlanten = db.CreateTable("Select tblKlanten.*, [Naam] & ' ' & [Voornaam] AS VoornaamNaam from tblKlanten", "klanten");
        }

        public static void GemeenteInvullen()
        {
            dsGemeenten = db.CreateTable("Select tblGemeente.Gemeente, tblGemeente.idWoonplaats FROM tblGemeente", "Gemeenten");
        }

        public static void LandInvullen()
        {
            dsLanden = db.CreateTable("Select * from tblLand", "Landen");
        }

        public static System.Windows.Forms.Form hoofd, kind;
        public static void ShowForm(System.Windows.Forms.Form f)
        {
            if (kind != null && f.Name != "Welkom") kind.Close();
            kind = f;
            f.WindowState = System.Windows.Forms.FormWindowState.Maximized;
            f.MdiParent = hoofd;
            f.Show();
        }

        public static void Reservatie()
        {
            dsReservatie = db.CreateTable("Select * from tblReservatie", "Reservatie");
        }

        public static void KamerInvullen()
        {
            dsKamerInvullen = db.CreateTable("Select * from tblKamerType", "Kamer");
        }

        public static void Login()
        {
            dsLogin = db.CreateTable("Select * from tblPaswoord", "Login");
        }

        public static void Prijzen()
        {
            dsPrijzen = db.CreateTable("Select * from tblPrijzen", "Prijzen");
        }
    }
}

Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace Gip2005
{
    class Database
    {
        System.Data.OleDb.OleDbConnection db;

        public Database(string database)
        {
            System.IO.FileInfo f = new System.IO.FileInfo(database);
            try
            {
                if (f.Extension == ".mdb") db = new
                    System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;" +
                    "Data Source=" + database);
                if (f.Extension == ".accdb") db = new
                    System.Data.OleDb.OleDbConnection("Provider=Microsoft.Ace.OleDb.12.0;" +
                    "Data Source=" + database);
                db.Open();
            }
            catch (Exception err)
            {
                System.Windows.Forms.MessageBox.Show(err.Message);
            }

        }

        public System.Data.DataSet CreateTable(string SQL, string tableName)
        {
            System.Data.DataSet ds = new System.Data.DataSet();
            try
            {
                System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(SQL, db);
                da.Fill(ds, tableName);
            }
            catch (Exception err)
            {
                System.Windows.Forms.MessageBox.Show(SQL +
                    System.Environment.NewLine +
                    System.Environment.NewLine + err.Message);
            }
            return ds;
        }


        public void ExecuteSQL(string SQL)
        {
            try
            {
                System.Data.OleDb.OleDbCommand cSQL = new System.Data.OleDb.OleDbCommand(SQL, db);
                cSQL.ExecuteNonQuery();
            }
            catch (Exception err)
            {
                System.Windows.Forms.MessageBox.Show(SQL +
                    System.Environment.NewLine +
                    System.Environment.NewLine + err.Message);
            }
        }

        public object GetValue(string SQL)
        {
            System.Data.DataSet dsGetValue = CreateTable(SQL, "GetValue");
            return dsGetValue.Tables["GetValue"].Rows[0][0];
        }
    }
}

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Collections;

namespace Gip2005
{
    public partial class Reserveren : Form
    {
        string KamerType;
        DataSet dsKamers;
        ArrayList alGevraagdeDatums;
        Graphics g;

        private void Controle()
        {
            Boolean bezet;

            String StartDatum = dtSD.Value.ToShortDateString();
            //MessageBox.Show(StartDatum);

            OleDbDataAdapter daReservatie = new OleDbDataAdapter("Select * from tblReservatie",Variabelen.db);
            daReservatie.Fill(Variabelen.dsReservatie, "Reservatie");

            OleDbDataAdapter daKamers = new OleDbDataAdapter();
            daReservatie.Fill(dsKamers, "Kamers");

            foreach (DataRow r in Variabelen.dsReservatie.Tables["Reservaties"].Rows)
            {
                bezet = false;

                DateTime dtVan, dtTot, dtDatum;
                dtVan = (DateTime)r["van"];
                dtTot = (DateTime)r["tot"];
                dtDatum = dtVan;

                if (dtTot >= dtVan)
                {
                    do
                    {
                        if (alGevraagdeDatums.Contains(dtDatum.ToShortDateString()) == true)
                        {
                            bezet = true;
                        }
                        dtDatum = dtDatum.AddDays(1);
                    } while (dtDatum < dtTot);
                }

                if (bezet == true)
                {
                    DataRow[] rt = dsKamers.Tables["kalers"].Select("IdKamer='" + r["IdKamer"].ToString() + "'");
                    g.DrawRectangle(new Pen(new SolidBrush(Color.Red), 2), float.Parse(rt[0]["VeldX"].ToString()),
                        float.Parse(rt[0]["VeldY"].ToString()), float.Parse(rt[0]["Lengthx"].ToString()),
                        float.Parse(rt[0]["Lengthy"].ToString()));
                }
            }
        }
    }
}

Als ik mijn programma wil runnen krijg is steeds volgende errors:
  1. The best overloaded method match for 'System.Data.OleDb.OleDbDataAdapter.OleDbDataAdapter(string, string)'
  2. cannot convert from 'Gip2005.Database' to 'string

Hoe kan ik dit oplossen?
 
Waarschijnlijk ligt het hier aan:
Code:
OleDbDataAdapter daReservatie = new OleDbDataAdapter("Select * from tblReservatie",Variabelen.db);
.

Zoals je error al aangeeft, OleDbDataAdapter verwacht 2 strings als parameters. De eerste is inderdaad een string, de tweede dus blijkbaar een object (zie de 2e error: .NET wil de 2e parameter (een Database object) omzetten naar een string, iets wat niet gaat lukken).

Ik denk dat je de 2e parameter hier moet veranderen (waarin weet ik niet) in een string.
 
Ik dacht al dat daar het probleem lag, maar ik zou niet weten in wat ik die db zou moeten veranderen. Volgens mij moet het 2de deel toch de database connectie zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan