Работа на C # vs 2008. У меня есть хранимая процедура в SQL Server 2005. Используя Linq-to-SQL, я выполняю хранимую процедуру, но результат равен нулю.Когда я запускаю запрос на сервере Sql, он отлично работает
exec spGetInvoiceByDate '03/01/2011 00:00:00 AM','03/31/2011 11:59:59 PM'
. Синтаксис выше, работает нормально.
Вот мой SQL Server хранимая процедура
create procedure [spGetInvoiceByDate]
@Beginning_Date DateTime, @Ending_Date DateTime
as
begin
SELECT * INTO #temp1 FROM (
SELECT convert(varchar, ManifestPort.StartDate, 1)+'-'+CASE dbo.ManifestPort.EndDate WHEN '1800-01-01 00:00:00.000' THEN 'N/A' ELSE convert(varchar, ManifestPort.EndDate, 1) END AS [Date], Manifest.VesselName, Manifest.VoyageNo, DischargePort.PortName
, ManifestPort.Terminal, COUNT(Seal.ContainerNo) TotalContainers, 0 AS TotalHours, 0 AS TotalFee
FROM ManifestPort
INNER JOIN Manifest ON ManifestPort.ManifestNo = Manifest.ManifestNo
INNER JOIN DischargePort ON ManifestPort.PortCode = DischargePort.PortCode
INNER JOIN Seal ON ManifestPort.ManifestPortNo = Seal.ManifestPortNo
WHERE (StartDate BETWEEN @Beginning_Date AND @Ending_Date)
GROUP BY StartDate,EndDate, VesselName, VoyageNo, PortName, Terminal) AS a
SELECT * INTO #temp2 FROM (
SELECT convert(varchar, ManifestPort.StartDate, 1)+'-'+CASE dbo.ManifestPort.EndDate WHEN '1800-01-01 00:00:00.000' THEN 'N/A' ELSE convert(varchar, ManifestPort.EndDate, 1) END AS [Date], Manifest.VesselName, Manifest.VoyageNo, DischargePort.PortName,
ManifestPort.Terminal, COUNT(Seal.ContainerNo) STotalContainers, 0 AS STotalHours, 0 AS STotalFee
FROM ManifestPort
INNER JOIN Manifest ON ManifestPort.ManifestNo = Manifest.ManifestNo
INNER JOIN DischargePort ON ManifestPort.PortCode = DischargePort.PortCode
INNER JOIN Seal ON ManifestPort.ManifestPortNo = Seal.ManifestPortNo
WHERE (StartDate BETWEEN @Beginning_Date AND @Ending_Date ) AND Line = 'CSAV'
GROUP BY StartDate,EndDate, VesselName, VoyageNo, PortName, Terminal ) AS b
SELECT #temp1.Date,
#temp1.VesselName ,
#temp1.VoyageNo ,
#temp1.PortName ,
#temp1.Terminal ,
#temp1.TotalContainers ,
#temp1.TotalHours ,
#temp1.TotalFee, #temp2.STotalContainers, #temp2.STotalHours, #temp2.STotalFee FROM #temp1 INNER JOIN #temp2
ON #temp1.Date = #temp2.Date AND #temp1.PortName = #temp2.PortName AND #temp1.Terminal = #temp2.Terminal AND #temp1.VesselName = #temp2.VesselName
AND #temp1.VoyageNo = #temp2.VoyageNo
Order BY #temp1.VesselName, #temp1.VoyageNo
DROP TABLE #temp1
DROP TABLE #temp2
end
Я использую этот синтаксис C # Linq для выполнения хранимой процедуры:
DateTime firstDayOfMonth = Convert.ToDateTime("03/01/2011");
DateTime lastDayOfMonth = Convert.ToDateTime("03/31/2011");
var results = ProviderName.spGetInvoiceByDate(firstDayOfMonth,lastDayOfMonth);
Почему я всегда получаю результат, равный нулю?
Кто-нибудь может сказать, какуменьшить проблему?
Заранее спасибо, если у вас есть какие-либо вопросы, пожалуйста, спросите.