0
我无法弄清楚为什么我的存储过程获取-1会是什么原因。SQL Server存储过程在代码隐藏中返回-1
这里代码隐藏代码(C#):
SqlCommand _command = _connection.CreateCommand();
_command.CommandText = "usp_ZX_GetValidToken";
_command.CommandType = CommandType.StoredProcedure;
_command.Parameters.AddWithValue("@tokenstring", tokenString);
_command.Parameters.AddWithValue("@difference", lifeInSeconds);
Object _response = _command.ExecuteNonQuery();
这里是我的存储过程的代码:
CREATE procedure [dbo].[usp_ZX_GetValidToken]
@tokenstring nvarchar(50), @difference int
AS
IF EXISTS(SELECT * FROM AppAccessTokens
WHERE Consumed = 0 AND GUIDToken = RTRIM(@tokenstring)
AND DATEDIFF(SECOND, CreateDateTime, GETDATE()) <= @difference)
RETURN 1;
ELSE
RETURN -1;
哦,是的!我还确保我的表有正确的数据,而我总是调用程序之前执行下面的代码:
update AppAccessTokens
set CreateDateTime = GETDATE()
的_response
从上面的C#代码总是-1
,我真的无法弄清楚这对我拥有。我需要一个新的眼睛来看这个。
我试过重新启动机器,服务器和IIS。 (我知道它没有意义)但没有任何变化,它始终保持-1。
任何人都可以建议我该怎么办?
不要使用'RETURN'来返回自定义值。这是sp执行错误代码(0 - OK,其他错误)**'返回代码通常用于返回错误检查信息**。改用“SELECT”或“output parameter”。 – lad2025
或者,这可能会有所帮助:http://stackoverflow.com/questions/31337492/how-to-identify-whether-sql-job-is-successfully-executed-or-not-in-c-sharp –
@ lad2025 thanks for解释,它帮助! – Hitin