执行插入查询后,MDB中未插入任何数据

时间:2012-10-04 07:11:28

标签: c# ms-access oledb

当我尝试在MS Access DB中插入一些数据时,不会插入数据。我的代码中缺少什么东西?

这是代码

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;
    }

提前谢谢。

1 个答案:

答案 0 :(得分:1)

问题将在这里:

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

您将命令分配给myAdapter,但然后执行为空的myCommand