【发布时间】:2014-04-15 11:19:38
【问题描述】:
如果我在下面执行这个 sql 查询,我会得到单个值 26
SELECT Count(*)
FROM [sqlPractice].[dbo].[vcVisitors]
但是当我使用下面的存储过程时,它有 2 个结果 - 我所追求的数字,然后是一个返回值“0”。我如何获得另一个值并将其输入到标签中?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROCEDURE [dbo].[UP_SEL_Count]
(
@expectedDate as datetime
)
AS
BEGIN
SELECT Count(*)
FROM [sqlPractice].[dbo].[vcVisitors]
Where expectedDate = @expectedDate and cancelled = 0
END
GO
我用来将数字输入标签的代码如下 - 但它所做的只是显示返回值 (0) - 我如何获得我想要的值?
int total_visits = Convert.ToInt32(cmd.ExecuteScalar());
lblTotal_vis_today.Text = total_visits.ToString();
【问题讨论】:
-
您的存储过程中有一个条件,而您的第一个查询没有。尝试在sql查询窗口中运行,看看结果!
-
您的第一个示例没有 where 子句,但在存储过程中,您在 where 子句中有 2 个条件。您确定存储过程正常工作吗?直接在 Sql Server 上执行您的存储过程。或者使用 Sql Profiler 跟踪您的查询。
-
我认为你有一个额外的条件(cancelled = 0),这可能是罪魁祸首!
标签: c# asp.net sql stored-procedures