【发布时间】:2010-10-28 18:53:30
【问题描述】:
我有这个问题,我需要为我的存储过程设置“可选”参数才能正常工作。 例如,我有这个:
CREATE PROCEDURE [dbo].[Search]
(
@StartTime datetime = NULL,
@EndTime datetime = NULL,
@CustomerEmail nvarchar(255) = NULL,
@OrderStatusID int
)
现在,在我的 .net 网站中,我有一个类似的示例,请记住,参数可能只有一个,也可能全部都有:
commAdvanced.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startDate;
commAdvanced.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endDate;
commAdvanced.Parameters.Add("@CustomerEmail", SqlDbType.nvarchar).Value = null;
commAdvanced.Parameters.Add("@OrderStatusID", SqlDbType.Int).Value = null;
这是查询:
SELECT * FROM Order
WHERE CreatedOn > CAST(@StartTime as datetime)
AND CreatedOn < CAST(@EndTime as datetime)
AND Order.OrderStatusID = @OrderStatusID
AND Order.CustomerEmail = @PaymentStatusID
当我这样做时,我没有得到任何记录,有人可以帮助我我需要更改什么。
【问题讨论】:
-
你的
SELECT声明中的@PaymentStatusID来自哪里?