日期:2014-05-18  浏览次数:20394 次

关于用MakeParam接收存储过程的return值
在存储过程中除了有入参、出参外,还会通过return语句返回,请问在C#中,如何用Database.MakeParam接收存储过程返回的return值呢??我想用这个return值在页面做一个判断~! 请各位帮下忙~! 本人菜鸟,希望解答尽量详细。。多谢~!

------解决方案--------------------
--CREATE PROCEDURE [dbo].[Test_FilteredPasswordCheckIsNoExists]
--(@FilteredPasswordName Nvarchar(500),
--@ReturnValue int output)
--AS
-- Begin
--
-- if Exists(select FID from [FilteredPassword] where FWord =@FilteredPasswordName And CurState>-4)
-- set @ReturnValue=1
-- else
-- set @ReturnValue=0
-- End
--
--GO

Code

internal static bool CheckFilteredPasswordYesNoExists(string FilteredPasswordName)
{
bool result = false;
SqlParameter[] p ={ SqlHelper.MakeInParam("@FilteredPasswordName", SqlDbType.NVarChar, 500, FilteredPasswordName), ReTurnValue };
try
{
NonQueryBool("Test_FilteredPasswordCheckIsNoExists", p);
result = Convert.ToInt32(p[1].Value) == 1 ? true : false;
}
catch { return false; } return result;
}

 internal protected static SqlParameter ReTurnValue
{
get
{
return Test.Common.Framework.Data.SqlHelper.MakeOutParam("@ReTurnValue", SqlDbType.Int, 4);
}
}