Search code examples
c#ms-accessoledb

No data is inserted in MDB after executing insert query


When I try to insert some data in an MS Access DB, the data is not inserted. Is something missing in my code?

This is the code

public void Toevoegen(
        int nummer, string voornaam, string achternaam, 
        string gsm, string nationaliteit, string adres, 
        DateTime geboorteDatum, string geboortePlaats, DateTime inschrijvingsDatum, 
        string sporten, int postCode, string gemeente, string klasse,
        Boolean competitie, string ziektes, string email)
    {
        try
        {
            string query = @"INSERT INTO Lid "
                + "VALUES ("
                + "@Lid_ID, "
                + "@Lid_VoorNaam, "
                + "@Lid_AchterNaam, "
                + "@Lid_Email, "
                + "@Lid_GeboorteDatum, "
                + "@Lid_InschrijvingsDatum, "
                + "@Lid_Nationaliteit, "
                + "@Lid_GeboortePlaats, "
                + "@Lid_Adres, "
                + "@Lid_PostCode, "
                + "@Lid_Gemeente, "
                + "@Lid_GSM, "
                + "@Lid_BeoefendeSporten, "
                + "@Lid_Competitie, "
                + "@Lid_KickKlasse, "
                + "@Lid_Ziektes)";

            OleDbCommand command = new OleDbCommand(query);
            command.Parameters.Add("@Lid_ID", OleDbType.Numeric).Value = nummer;
            command.Parameters.Add("@Lid_VoorNaam", OleDbType.Char).Value = voornaam;
            command.Parameters.Add("@Lid_Achternaam", OleDbType.Char).Value = achternaam;
            command.Parameters.Add("@Lid_Email", OleDbType.Char).Value = email;
            command.Parameters.Add("@Lid_GeboorteDatum", OleDbType.Date).Value = geboorteDatum;
            command.Parameters.Add("@Lid_InschrijvingsDatum", OleDbType.Date).Value = inschrijvingsDatum;
            command.Parameters.Add("@Lid_Nationaliteit", OleDbType.Char).Value = nationaliteit;
            command.Parameters.Add("@Lid_GeboortePlaats", OleDbType.Char).Value = geboortePlaats;
            command.Parameters.Add("@Lid_Adres", OleDbType.Char).Value = adres;
            command.Parameters.Add("@Lid_PostCode", OleDbType.Numeric).Value = postCode;
            command.Parameters.Add("@Lid_Gemeente", OleDbType.Char).Value = gemeente;
            command.Parameters.Add("@Lid_GSM", OleDbType.Char).Value = gsm;
            command.Parameters.Add("@Lid_BeoefendeSporten", OleDbType.Char).Value = sporten;
            command.Parameters.Add("@Lid_Competitie", OleDbType.Boolean).Value = competitie;
            command.Parameters.Add("@Lid_KickKlasse", OleDbType.Char).Value = klasse;
            command.Parameters.Add("@Lid_Ziektes", OleDbType.Char).Value = ziektes;
            conn.executeInsertQuery(command);
        }
        catch (Exception error)
        {
            System.Windows.Forms.MessageBox.Show(error.Message);
        }
    }

--

public bool executeInsertQuery(OleDbCommand _command)
    {
        OleDbCommand myCommand = new OleDbCommand();
        try
        {
            myCommand.Connection = openConnection();
            //myCommand.CommandText = _query;
            //myCommand.Parameters.AddRange(dbParameter);
            myAdapter.InsertCommand = _command;
            myCommand.ExecuteNonQuery();
        }
        catch (OleDbException e)
        {
            Console.Write("Error - Connection.executeInsertQuery - Query: " 
                + _command.CommandText + " \nException: \n" + e.StackTrace.ToString());
            return false;
        }
        finally
        {
        }
        return true;
    }

Thank you in advance.


Solution

  • Problem will be here:

    myAdapter.InsertCommand = _command;
    myCommand.ExecuteNonQuery();
    

    You assign command to myAdapter but then execute myCommand which is empty.