![](/img/trans.png)
[英]oledb exception syntax error in insert into statement (0x80040E14) in C#
[英]C# Oledb 0x80040E14 INSERT INTO error
我正在做一個項目,您可以在其中使用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());
}
}
密碼是MSAccess中的保留關鍵字 。 要使用它,您需要將其用方括號括起來
String SQL_QUERY = "INSERT INTO Users(Username, [Password], Voornaam, Tussenvoegsel, " +
"Achternaam, Email, VolledigeNaam) VALUES(?, ?, ?, ?, ?, ?, ?)";
但是,如果仍然有可能,請更改列名稱,因為此問題將非常煩人。
您的代碼中還有另一個錯誤。
方法AddWithValue需要作為第二個參數的OleDbParameter
的值,而不是類型。
COMMAND.Parameters.AddWithValue("Username", Username);
....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.