【问题标题】:C# Oledb 0x80040E14 INSERT INTO errorC# Oledb 0x80040E14 插入错误
【发布时间】:2014-01-03 22:12:09
【问题描述】:

我正在开发一个项目,您可以在其中使用 INSERT INTO 命令和 Acces 数据库 (OleDB) 将用户添加到数据库。

我遇到了0x80040E14 错误,我似乎无法解决。 代码如下:

public void AddUser()
{
    OleDbConnection DATABASE_CONNECTION = new OleDbConnection(CONNECTION_STRING);

    try
    {
        DATABASE_CONNECTION.Open();
        String SQL_QUERY = "INSERT INTO Users(Username, Password, Voornaam, Tussenvoegsel, Achternaam, Email, VolledigeNaam) VALUES(?, ?, ?, ?, ?, ?, ?)";
        OleDbCommand COMMAND = new OleDbCommand(SQL_QUERY, DATABASE_CONNECTION);

        COMMAND.Parameters.AddWithValue("Username", OleDbType.Char).Value = Username;
        COMMAND.Parameters.AddWithValue("Password", OleDbType.Char).Value = Password;
        COMMAND.Parameters.AddWithValue("Voornaam", OleDbType.Char).Value = Voornaam;
        COMMAND.Parameters.AddWithValue("Tussenvoegsel", OleDbType.Char).Value = Tussenvoegsel;
        COMMAND.Parameters.AddWithValue("Achternaam", OleDbType.Char).Value = Achternaam;
        COMMAND.Parameters.AddWithValue("Email", OleDbType.Char).Value = Email;
        COMMAND.Parameters.AddWithValue("VolledigeNaam", OleDbType.Char).Value = VolledigeNaam;

        int rows = COMMAND.ExecuteNonQuery();
        DATABASE_CONNECTION.Close();

        if (rows > 0)
        {
            MessageBox.Show("User added");
        }
        else
        {
            MessageBox.Show("FAIL");
        }
    }
    catch (Exception e)
    {
        MessageBox.Show(e.ToString());
    }
}

【问题讨论】:

    标签: c# insert oledb


    【解决方案1】:

    密码是 MSAccess 中的 reserved keyword。要使用它,您需要将其括在方括号中

       String SQL_QUERY = "INSERT INTO Users(Username, [Password], Voornaam, Tussenvoegsel, " + 
                          "Achternaam, Email, VolledigeNaam) VALUES(?, ?, ?, ?, ?, ?, ?)";
    

    但是,如果仍然可以,请更改列名,因为这个问题会很烦人。

    您的代码中还有另一个错误。

    方法AddWithValue 需要OleDbParameter 的值作为第二个参数,而不是类型。

      COMMAND.Parameters.AddWithValue("Username", Username);
      ....
    

    【讨论】:

    • 我不知道这个,非常感谢你帮我解决这个问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多