Запрос С# в программном обеспечении не возвращает то же, что прямой запрос в БДC#

Место общения программистов C#
Ответить
Anonymous
 Запрос С# в программном обеспечении не возвращает то же, что прямой запрос в БД

Сообщение Anonymous »

Я работаю в wpf/C# с ​​Postgres:
Я выполняю этот запрос, попробуйте

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

'''
public static int GetOfflineDiscountCount(string discountHashId, string
loyaltyCustomerId)
{
// Initialize the count variable
int discountCount = 0;

Console.WriteLine($"Customer ID: {loyaltyCustomerId}, Discount ID:
{discountHashId}");

try
{
using (var dbContext = new XXXX(ConnectionStringHelper.posConnectionString))
{
var query = @"
SELECT COUNT(tsd.id) AS countAll
FROM XXXX.tmp_sale_discount tsd
JOIN XXXX.tmp_sale_items tsi ON tsi.id = tsd.sale_item_id
JOIN XXXX.tmp_sale ts ON ts.id = tsi.sale_id
WHERE ts.send_status != 1
AND ts.customer_id = @p0
AND tsd.discount_id = @p1";

// Execute the query with parameters
discountCount = dbContext.Database.SqlQuery(
query,
new Npgsql.NpgsqlParameter("@p0", loyaltyCustomerId), // Parameter for
customer_id
new Npgsql.NpgsqlParameter("@p1", discountHashId) // Parameter for
discount_id
).FirstOrDefault();

Console.WriteLine($"{discountCount}");

}
}
catch (Exception ex)
{
LogHelper.WriteException(ex);
}

// Return the final count
return discountCount;
}
'''
Когда я устанавливаю статические значения, он возвращает 0. однако, когда я запускаю запрос, измененный для работы напрямую с моим PGAdmin и теми же переменными, он работает нормально.
Я убедился, что соединение с БД хорошее и работает так, как задумано. Я ЗАБЛОКИРОВАЛ соединение с облачным сервером, чтобы сохранить значения БД, которые я хотел использовать в качестве триггера, но это запускается только в локальной копии БД, а не в облачной версии.
В программе переменные для лояльностиCustomerId и DiscountHashID поступают точно.
Не знаю, в чем я здесь не прав.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -on-the-db
Ответить

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

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

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

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

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