HttpClient поставил проблему в Angular - PullRequest
0 голосов
/ 06 декабря 2018

Я разрабатываю приложение Angular с веб-интерфейсом.

Я создал службу (sellerService), в которой я могу обновить некоторые данные в моей базе данных с помощью HttpClient put.

Выше.работает, но он обновляет все данные моей таблицы, что-то вроде следующего:

Перед обновлением моего продавца:

BEFORE

После обновления моего продавца:

AFTER

Мой продавецСервисный код:

  updateSeller(user: string, nbsales: number, pVote: number, nVote: number, idUser: number): Observable<any> {
      return this.http.put('http://localhost:50867/api/seller_user/', {
        'username': user,
        'nbSales': nbsales,
        'positiveVote': pVote,
        'negativeVote': nVote,
        'idUser': idUser
      });
    }

Мой запрос на обновление(DAO (c #)):

public static readonly string UPDATE = "update " + TABLE_NAME + " set "
            + COLUMN_USERNAME + " =@username"
            + ", " + COLUMN_NB_SALES + "=@nbSales"
            + ", " + COLUMN_POSITIVE_VOTE + "=@positiveVote"
            + ", " + COLUMN_NEGATIVE_VOTE + " =@negativeVote"
            + ", " + COLUMN_ID_USER + "=@idUser";

        //Update a seller_user
        public static bool Update(Seller_user todo)
        {
            bool state = false;
            using (SqlConnection connection = DataBase.GetConnection())
            {
                connection.Open();
                SqlCommand command = new SqlCommand(UPDATE, connection);

                //command.Parameters.AddWithValue("@idSeller", todo.idSeller);
                command.Parameters.AddWithValue("@username", todo.username);
                command.Parameters.AddWithValue("@nbSales", todo.nbSales);
                command.Parameters.AddWithValue("@positiveVote", todo.positiveVote);
                command.Parameters.AddWithValue("@negativeVote", todo.negativeVote);
                command.Parameters.AddWithValue("@idUser", todo.idUser);

                state = command.ExecuteNonQuery() != 0;
            }
            return state;
        }

Заранее спасибо;)

1 Ответ

0 голосов
/ 06 декабря 2018

Вы пропустили предложение , где в запросе SQL.Так что он обновит все записи.

public static readonly string UPDATE = "update " + TABLE_NAME + " set "
            + COLUMN_USERNAME + " =@username"
            + ", " + COLUMN_NB_SALES + "=@nbSales"
            + ", " + COLUMN_POSITIVE_VOTE + "=@positiveVote"
            + ", " + COLUMN_NEGATIVE_VOTE + " =@negativeVote"
            + ", " + COLUMN_ID_USER + "=@idUser"
            + "WHERE "  + COLUMN_ID_USER + "=" + "= @idUser";
...