MiniJeffrey
Legacy Member
Hi guys,
Ik heb een vreemd probleem met het openen van mijn connectie naar MySQL bij 1 methode. Gegevens ophalen, record verwijderen werkt allemaal perfect, maar bij mijn UpdateBoeking krijg ik altijd een error bij het openen van connection (sql error 40). Er is nisk mis met mijn db want alle andere operaties werken wel. Hopelijk iemand die iets ziet in mijn code:
Ik heb een vreemd probleem met het openen van mijn connectie naar MySQL bij 1 methode. Gegevens ophalen, record verwijderen werkt allemaal perfect, maar bij mijn UpdateBoeking krijg ik altijd een error bij het openen van connection (sql error 40). Er is nisk mis met mijn db want alle andere operaties werken wel. Hopelijk iemand die iets ziet in mijn code:
Code:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using pvg.Domain;
using MySql.Data.MySqlClient;
namespace pvg.DAL
{
public class BoekingDAO
{
private string connectionString;
static private BoekingDAO instance = null;
static public BoekingDAO Instance
{
get
{
if (instance == null)
instance = new BoekingDAO();
return instance;
}
}
private BoekingDAO()
{
connectionString = WebConfigurationManager.ConnectionStrings["pvg"].ConnectionString;
}
public Boeking GeefBoeking(int Id)
{
string sqlString = "Select * from boeking where id = @Id";
List<MySqlParameter> pars = new List<MySqlParameter>();
pars.Add(new MySqlParameter("@Id", Id));
return ExecuteReaderSingleRow(sqlString, pars);
}
public List<Boeking> LeesAlleBoekingen()
{
string sqlString = "Select * from boeking";
List<MySqlParameter> pars = new List<MySqlParameter>();
return ExecuteReader(sqlString, pars);
}
public void VerwijderBoeking(int Id)
{
using (SqlConnection oConn = new SqlConnection(connectionString))
{
string sqlString = "delete from boeking where Id = @Id";
SqlCommand oCmd = new SqlCommand(sqlString, oConn);
List<MySqlParameter> pars = new List<MySqlParameter>();
pars.Add(new MySqlParameter("@Id", Id));
ExecuteReader(sqlString, pars);
}
}
public bool UpdateBoeking(Boeking boeking)
{
using (SqlConnection oConn = new SqlConnection(connectionString))
{
string sqlString = "Update Boeking set klant1=@klant1, klant2=@klant2, straat=@straat, nummer=@nummer, postcode = @postcode, gemeente = @gemeente, datum = @datum, feesttype = @feesttype, genodigden = @genodigden, feestzaalid = @feestzaalid, djid = @djis, bedrag = @bedrag, duur = @duur where id=@id";
SqlCommand oCmd = new SqlCommand(sqlString, oConn);
BuildBoekingParamsFromEntity(boeking, oCmd.Parameters);
[B]oConn.Open();[/B] // HIER KOMT ALTIJD DIE ERROR
int rowsAffected = oCmd.ExecuteNonQuery();
return (rowsAffected == 1);
}
}
protected Boeking GetObjectFromReader(IDataReader oReader)
{
int id = (int)oReader["Id"];
string klant1 = (string)oReader["Klant1Naam"];
string klant2 = (string)oReader["Klant2Naam"];
string straat = (string)oReader["KlantStraat"];
string nummer = (string)oReader["KlantHuisNummer"];
string postcode = (string)oReader["KlantPostcode"];
string gemeente = (string)oReader["KlantGemeente"];
DateTime datum = (DateTime)oReader["Datum"];
int feestType = (int)oReader["FeestTypeId"];
int genodigden = (int)oReader["Genodigden"];
int feestzaalId = (int)oReader["FeestzaalID"];
int djId = (int)oReader["DjId"];
double bedrag = (double)oReader["Bedrag"];
int duur = (int)oReader["Duur"];
Boeking boeking = new Boeking(id, klant1, klant2, straat, nummer, postcode, gemeente, datum, feestType, genodigden, feestzaalId, djId, bedrag, duur);
return boeking;
}
protected List<Boeking> GetObjectCollectionFromReader(IDataReader oReader)
{
List<Boeking> boekingen = new List<Boeking>();
while (oReader.Read())
{
boekingen.Add(GetObjectFromReader(oReader));
}
return boekingen;
}
public Boeking ExecuteReaderSingleRow(string sqlString, List<MySqlParameter> parameters)
{
using (MySqlConnection oConn = new MySqlConnection(connectionString))
{
MySqlCommand oCmd = new MySqlCommand(sqlString, oConn);
foreach (MySqlParameter p in parameters)
oCmd.Parameters.Add(p);
oConn.Open(); // DEZE OPENEN WEL
using (MySqlDataReader oReader = oCmd.ExecuteReader(CommandBehavior.SingleRow))
{
if (oReader.Read())
{
return GetObjectFromReader(oReader);
}
}
return default(Boeking);
}
}
public List<Boeking> ExecuteReader(string sqlString, List<MySqlParameter> parameters)
{
using (MySqlConnection oConn = new MySqlConnection(connectionString))
{
MySqlCommand oCmd = new MySqlCommand(sqlString, (MySqlConnection)oConn);
foreach (MySqlParameter p in parameters)
oCmd.Parameters.Add(p);
oConn.Open();
using (MySqlDataReader oReader = oCmd.ExecuteReader())
{
return GetObjectCollectionFromReader(oReader);
}
}
}
protected void BuildBoekingParamsFromEntity(Boeking boeking, SqlParameterCollection pars)
{
pars.Add(new SqlParameter("@id", boeking.Id));
pars.Add(new SqlParameter("@klant1", boeking.Klant1));
pars.Add(new SqlParameter("@klant2", boeking.Klant2));
pars.Add(new SqlParameter("@straat", boeking.Straat));
pars.Add(new SqlParameter("@nummer", boeking.Nummer));
pars.Add(new SqlParameter("@postcode", boeking.Postcode));
pars.Add(new SqlParameter("@gemeente", boeking.Gemeente));
pars.Add(new SqlParameter("@datum", boeking.Datum));
pars.Add(new SqlParameter("@feesttype", boeking.FeestType));
pars.Add(new SqlParameter("@genodigden", boeking.Genodigden));
pars.Add(new SqlParameter("@feestzaalid", boeking.FeestzaalId));
pars.Add(new SqlParameter("@djid", boeking.DjId));
pars.Add(new SqlParameter("@bedrag", boeking.Bedrag));
pars.Add(new SqlParameter("@duur", boeking.Duur));
}
}
}
