我有查询返回单个值(即)计数。我用下面的方式存储的过程,并使用与数据集执行读写器获取单个值从存储过程有效返回值
CREATE PROCEDURE GetCnt
@EmpNo char(4)
AS
BEGIN
SET NOCOUNT ON;
Declare @Cnt int
SELECT @Cnt = count(*)
FROM employees
WHERE EMPLNO = @EmpNo
AND test = 'p'
BEGIN
SELECT @Cnt
END
END
exceuting正是这种effcient方式 或者我需要使用execute.scalar(),并返回值直接从查询而不是分配到@cnt 可以任何一个人告诉我
似乎确定,但你并不需要一个额外的'开头。 ... END',因为这个存储过程返回的只是一行和一列,所以你通常使用'var result = sqlCommand.ExecuteScalar()'从.NET调用这个 –
既然您使用单个列重新调整结果集的单行,您应该使用ExecuteScaler。它针对这种情况进行了选择。 – user957902
尝试这两种方式,看看...我怀疑它会造成很大的差异无论如何。 –