Запрос Npgsql COUNT возвращает 0, даже если данные существуют с соответствующей датой и идентификатором сотрудника в PosC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Запрос Npgsql COUNT возвращает 0, даже если данные существуют с соответствующей датой и идентификатором сотрудника в Pos

Сообщение Anonymous »

У меня есть код, который проверяет, существует ли запись:

Код: Выделить всё

  using (var connection = new NpgsqlConnection(_connectionString))
{
await connection.OpenAsync();

var query = @"
SELECT COUNT(1)
FROM TimeEntries
WHERE EmployeeId = @EmployeeId AND Date::date = @Date";

using (var command = new NpgsqlCommand(query, connection))
{
command.Parameters.AddWithValue("@EmployeeId", timeEntry.EmployeeId);
command.Parameters.AddWithValue("@Date", timeEntry.Date.Date);

var count = (long)await command.ExecuteScalarAsync();

if (count > 0)
{
throw new InvalidOperationException("Pracownik już ma zarejestrowane godziny pracy w tej dacie.");
}
}
и я отправляю туда запрос типа:

Код: Выделить всё

{
"date": "2024-12-29T21:42:58.251Z",
"hoursWorked": 0
}
и идентификатор в запросе.
Проблема в том, что это не работает.
Данные в таблице следующие:

Код: Выделить всё

"id"    "employeeid"    "date"  "hoursworked"
7             2       "2024-12-29"      8.00
Я думал, что это не работает, потому что здесь:

Код: Выделить всё

command.Parameters.AddWithValue("@Date", timeEntry.Date.Date);
значение параметра 29.12.2024 00:00:00 вместо 29.12.2024 но sql-запрос:

Код: Выделить всё

SELECT COUNT(1)
FROM TimeEntries
WHERE EmployeeId = 2 AND Date::date = '2024-12-29 00:00:00';
возвращает правильное значение 10, но в коде счетчик всегда равен 0...

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-and-empl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»