Обновить таблицу SQL Запрос: SqlConnection - PullRequest
1 голос
/ 21 апреля 2020

Я хотел бы обновить запись, основанную на параметре Id, я попытался выполнить следующий шаг, но это не похоже на правильный путь, потому что он генерирует ошибку компиляции:

public async Task CustomerUpdateAsync(string customerId)
{
  await using var sqlConnection = new SqlConnection(_connectionString);
            {
                var sqlQuery = "UPDATE Customer(CustomerId,Name,Address,PostalCode,City)" +
                          "SET (@CustomerId,@Name,@Address,@PostalCode,@City)" +
                          $"WHERE CustomerId=@CustomerId", new {CustomerId = customerId};

                await sqlConnection.ExecuteAsync(sqlQuery, customerId);
            }
}

Ошибка:

ожидается только приращение приращения вызова, и новые выражения объекта могут использоваться как оператор

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Спасибо, ребята, я решил эту проблему, немного подправив: -

 public async Task CustomerUpdateAsync(Customer customer)
            {
                await using var sqlConnection = new SqlConnection(_connectionString);
                {
                    var sql = "UPDATE Customer SET Name=@Name,Address=@Address, PostalCode=@PostalCode," +
                              "City=@City WHERE CustomerId=@CustomerId";
                    await sqlConnection.ExecuteAsync(sql, new
                    {
                       CustomerId = customer.CustomerId,
                       Name = customer.Name,
                       Address = customer.Address,
                       PostalCode = customer.PostalCode,
                       City = customer.City
                    });
                }
0 голосов
/ 21 апреля 2020

Вы ищете что-то вроде:

await sqlConnection.ExecuteAsync(@"
UPDATE Customer
SET    Name = @name, Address = @address,
       PostalCode = @postalCode, City = @city
WHERE  CustomerId=@customerId",
     new { customerId, name, address, postalCode, city });

Однако я не знаю, откуда вы собираетесь получить name, address и т. Д. c - они не отображаются в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...