Anonymous
Вернуть несколько столбцов SQL-запроса и преобразовать в кортеж
Сообщение
Anonymous » 06 дек 2024, 17:42
У меня есть следующий код:
Код: Выделить всё
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
1733496121
Anonymous
У меня есть следующий код: [code]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); } } [/code] Я получаю PurchaseOrderId и PONum из результата SQL-запроса и хочу вернуть его в виде кортежа (int PurchaseOrderId, строка PONum) в Код C#. При выполнении запроса я получаю следующую ошибку: [code]{"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]]'."} [/code] Как преобразовать результат в кортеж? Подробнее здесь: [url]https://stackoverflow.com/questions/79258131/return-multiple-sql-query-column-and-convert-into-tuple[/url]