2017-05-29 71 views
-1

我想在表格中插入只有一列的電子郵件。我嘗試了2種方式。我第一次嘗試使用commandText,第二次嘗試使用parapeters。但是這兩種解決方案都給了我同樣的錯誤。INSERT INTO表(列)VALUE(電子郵件)

System.Data.OleDb.OleDbException:'INSERT INTO語句中的語法錯誤。'

我在INSERT語句中看不到任何錯誤。也許問題出在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(); 
} 
+0

這是沒有問題的 – MiOnIs

+0

以及我需要在表中插入用戶。 – MiOnIs

+1

[Little Bobby Tables](http://bobby-tables.com/)警報! –

回答

3

User是一個關鍵詞。你應該INSERT INTO [USER]而不是

+0

這裏提到:https://support.microsoft.com/en-us/help/286335/list-of-reserved-words-in-access-2002-and-in-later-versions-of-access – Smartis

+0

是啊而已。謝謝。 – MiOnIs

0
string cmdText= @"INSERT INTO User (email)) VALUES ('"+userEmail+"')"; 

你有一個 ')'(電子郵件)後太多

+0

這是沒有問題,我沒有兩個)在第二個字符串,但我再次出現錯誤。 – MiOnIs

+1

[Little Bobby Tables](http://bobby-tables.com/)警報! –