我有查詢返回單個值(即)計數。我用下面的方式存儲的過程,並使用與數據集執行讀寫器獲取單個值從存儲過程有效返回值
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
嘗試這兩種方式,看看...我懷疑它會造成很大的差異無論如何。 –