【问题标题】:INSERT INTO Table (Column) VALUE (email)插入表(列)值(电子邮件)
【发布时间】:2023-03-20 21:05:01
【问题描述】:

我想在只有一列的表格中插入电子邮件。我尝试了两种方式。我第一次尝试使用 commandText,第二次尝试使用 parapeters。但是这两种解决方案都给了我同样的错误。

System.Data.OleDb.OleDbException:“INSERT INTO 语句中的语法错误。”

我在 INSERT STATEMENT 中没有看到任何错误。也许问题出在 TABLE 中?

 using (OleDbCommand cmd = new OleDbCommand())
 {
    cmd.Connection = conn;
    cmd.CommandText = "SELECT COUNT (email) FROM [User] WHERE [email] LIKE '" + userEmail + "';";
    conn.Open();
    int count = Convert.ToInt32(cmd.ExecuteScalar()); // This passed
    if (count == 0)
    {
        string query = @"INSERT INTO User (email) VALUES (@email)";
        string cmdText= @"INSERT INTO User (email) VALUES ('"+userEmail+"')";
        OleDbCommand command = new OleDbCommand(cmdText, conn);
   //     command.Parameters.AddWithValue("@email", "userEmail");
       // command.CommandText = query;
        command.ExecuteNonQuery(); // I GOT ERROR HERE
    }
    conn.Close();
}

【问题讨论】:

标签: c# ms-access insert-into oledbcommand


【解决方案1】:

User 是一个关键字。您应该改为INSERT INTO [USER]

【讨论】:

【解决方案2】:
string cmdText= @"INSERT INTO User (email)) VALUES ('"+userEmail+"')";

(电子邮件)后面的“)”太多了

【讨论】:

  • 没问题,我在第二个字符串中没有两个 ) 但我又出错了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 2011-03-31
  • 2016-09-02
  • 2020-08-31
  • 1970-01-01
相关资源
最近更新 更多