2017-05-29 18 views
-1

1つのカラムだけでテーブルに電子メールを挿入したいとします。私は2つの方法で試しました。初めてcommandTextで試してみましたが、2回目はパラペッターで試しました。しかし、両方の解決策は私に同じエラーを与える。INSERT INTOテーブル(カラム)VALUE(電子メール)

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(); 
} 
+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+"')"; 

あなたは1つが ')'(Eメール)の後にあまりにも多くの

+0

2番目の文字列には2つの文字列はありませんでしたが問題はありませんがもう一度エラーが発生しました。 – MiOnIs

+1

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

関連する問題