c#中获取存储过程方法

王朝c#·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

因为一般都用T-SQL来执行数据库操作,偶尔现在转到用存储过程,竟然写不来调用过程的返回值了,查了很多资料,都不详细,或者没到点上,也许是我比较笨,呵呵。

C# 源代码

1 /// <summary>

2 /// 校验用户

3 /// </summary>

4 /// <param name="user">用户信息</param>

5 /// <returns></returns>

6 public static int VerifyUser(clsUser user)

7 {

8 int iRet;

9 string sql = String.Format("EXECUTE VerifyUser @myVerifyReader OUTPUT,'{0}','{1}'",user.username,user.password); //执行的T-SQL串

10 SqlCommand scmd = new SqlCommand(sql, conn);

11 scmd.Parameters.Add(new SqlParameter("@myVerifyReader",SqlDbType.Int));

12 scmd.Parameters["@myVerifyReader"].Direction = ParameterDirection.Output;

13 //

14

15 DBOpen(conn);

16 //在返回值上有问题

17 scmd.ExecuteNonQuery();

18 iRet = (int)scmd.Parameters["@myVerifyReader"].Value;

19 DBClose(conn);

20 return iRet;

21 }

SQL SERVER存储过程

------------------------------

/*

* VerifyUser 存储过程

* 用途:验证用户登陆

*/

CREATE PROCEDURE VerifyUser

(

@myVerifyReader int OUTPUT, --返回结果

@username varchar(50), --用户名

@userpassword varchar(50) --用户密码

)

AS

IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username AND userpassword = @userpassword)

SET @myVerifyReader = 0 --通过验证

ELSE IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username)

SET @myVerifyReader = 1 --用户存在,密码不正确

ELSE

SET @myVerifyReader = 2 --用户不存在

RETURN isnull(@myVerifyReader,3)

-------------------------------------------------

GO

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航