0

当我尝试在 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;
    }

先感谢您。

4

1 回答 1

1

问题会在这里:

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

您将命令分配给myAdapter但随后执行myCommand它是空的。

于 2012-10-04T07:14:57.333 回答