1. ホーム
  2. c#

[解決済み] SQLエラーです。キーワード 'User' の近くに不正な構文があります。

2022-02-07 12:46:14

質問

C#を使用して、以下のようにSQLデータベースファイルにデータを挿入するSQLを使用しています。

    String cs = System.Configuration.ConfigurationManager.ConnectionStrings["connection1"].ConnectionString;
    SqlConnection conn = new SqlConnection(cs);
    String sql = "INSERT INTO User (login, password, status) " + 
            "VALUES (@login, @password, @status)";
    SqlCommand comm = new SqlCommand(sql, conn);

    comm.Parameters.Add("@login", System.Data.SqlDbType.VarChar);
    comm.Parameters.Add("@password", System.Data.SqlDbType.VarChar);
    comm.Parameters.Add("@status", System.Data.SqlDbType.Bit);

    try
    {
        conn.Open();
        Console.WriteLine(conn.ToString());
        comm.ExecuteNonQuery();
        conn.Close();
        return true;
    }
    catch (Exception ex)
    {
        throw (ex);
    }
    finally
    {
        conn.Close();
    }

コマンド実行時に以下のエラーが発生します。

<ブロッククオート

キーワードの近くに不正な構文があります 'User'です。INSERT INTO User (login, パスワード, ステータス) VALUES (@login, password, @status)

どうすればいいのでしょうか?

を編集してください。 パラメータ値を追加しました。

    comm.Parameters["@login"].Value = this.Username;
    comm.Parameters["@password"].Value = this._password;
    comm.Parameters["@status"].Value = this.Status;

解決方法は?

User は予約キーワード という意味であることを明示するために、角括弧を使用する必要があります。 オブジェクト という名前にする、つまり [User] の代わりに User .