Вернуть несколько столбцов SQL-запроса и преобразовать в кортежC#

Место общения программистов C#
Ответить
Anonymous
 Вернуть несколько столбцов SQL-запроса и преобразовать в кортеж

Сообщение Anonymous »

У меня есть следующий код:

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

public async Task AddPurchaseOrder(PurchaseOrderMaster purchaseOrderMaster)
{
try
{
var sqlQuery = new StringBuilder();
var paramSearch = new DynamicParameters();

_ = sqlQuery.Append($@"INSERT INTO PurchaseOrder (PONum, VendorID, WHId, PODate, ReferenceNum, EstArrivalDate, POType, SubTotal, TAX, ShippingHandling, Total, EnteredBy, EnteredOn, IsDelete)
OUTPUT inserted.PurchaseOrderId, inserted.PONum
VALUES (FLOOR(RAND() * 900000) + 100000, @VendorID, @WHId, @PODate, @ReferenceNum, @EstArrivalDate, @POType, @SubTotal, @TAX, @ShippingHandling, @Total, @EnteredBy, GETUTCDATE(), 'N');
");

paramSearch.Add("@VendorID", purchaseOrderMaster.VendorID);
paramSearch.Add("@WHId", purchaseOrderMaster.WHId);
paramSearch.Add("@PODate", purchaseOrderMaster.PODate);
paramSearch.Add("@ReferenceNum", purchaseOrderMaster.ReferenceNum);
paramSearch.Add("@EstArrivalDate", purchaseOrderMaster.EstArrivalDate);
paramSearch.Add("@POType", purchaseOrderMaster.POType);
paramSearch.Add("@SubTotal", purchaseOrderMaster.SubTotal);
paramSearch.Add("@TAX", purchaseOrderMaster.TAX);
paramSearch.Add("@ShippingHandling", purchaseOrderMaster.ShippingHandling);
paramSearch.Add("@Total", purchaseOrderMaster.Total);
paramSearch.Add("@EnteredBy", purchaseOrderMaster.EnteredBy);

return await dbHelper.ExecuteScalarAsync(sqlQuery.ToString(), paramSearch).ConfigureAwait(false);
}
catch (Exception ex)
{
throw new BadRequestException(ex.Message);
}
}

Я получаю PurchaseOrderId и PONum из результата SQL-запроса и хочу вернуть его в виде кортежа (int PurchaseOrderId, строка PONum) в Код C#.
При выполнении запроса я получаю следующую ошибку:

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

{"Invalid cast from 'System.Int32' to 'System.ValueTuple`2[[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'."}
Как преобразовать результат в кортеж?


Подробнее здесь: https://stackoverflow.com/questions/792 ... into-tuple
Ответить

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

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

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

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

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