0
我第一次嘗試創建從C#運行的存儲過程時產生了以下結果。C#&SQL Server存儲過程 - 必須聲明標量變量@SellerLocationID
然而,在調用中,我得到的錯誤
必須聲明標@SellerLocationID
我都試過,包括聲明
declare @SellerLocationID int = 0;
內部和外部的存儲程序。
在這兩種情況下,我都會收到相同的錯誤。
我需要做些什麼來解決這個錯誤?
C#(調用代碼)
var sqlUserName = new SqlParameter("@SellerLocationID", SellerLocationID);
var results = unitofwork.DBContext().Database
.SqlQuery<dynamic>
("Exec GetClientOrdersForSupplier @SellerLocationID", SellerLocationID).ToList();
T-SQL:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetClientOrdersForSupplier]
@SellerLocationID int
AS
BEGIN
SET NOCOUNT ON;
SELECT
l.LocationName, u.UserID, u.FirstName, u.LastName,
MAX(o.OrderSubmittedDate) as LastOrderPlaced
FROM
sw.Locations l
JOIN
sw.Users u ON u.locationid = l.locationid
LEFT JOIN
sw.locationproviders lp ON u.LocationID = lp.BuyerLocationID
LEFT JOIN
sw.orders o ON o.CreatedUserID = u.UserID
WHERE
lp.sellerlocationid = @SellerLocationID
GROUP BY
l.LocationName, u.UserID, u.FirstName, u.LastName
ORDER BY
UserID
END
您沒有在.Query方法中提供您的SqlParameter對象。它應該看起來像.Query(「Exec GetClientOrdersForSupplier @SellerLocationID」,sqlUserName) – mallan1121
謝謝,它似乎是一個變量的命名問題。我錯誤地使用了sqlUserName,而不是將它重命名爲sqlSellerLocationID並將它傳遞給查詢方法。 – Vahe