asp.net 存储过程 输入输出参数+返回值

存储过程

       USE TEST
GO
CREATE PROC SHOW --DROP PROC SHOW
@NAMES VARCHAR(50),
@PWD VARCHAR(50),
@MESSAGE VARCHAR(50) OUTPUT
AS
IF EXISTS(SELECT * FROM A WHERE NAMES=@NAMES)
BEGIN
   IF EXISTS(SELECT * FROM A WHERE NAMES=@NAMES AND PWD=@PWD)
    BEGIN
     SELECT * FROM A WHERE NAMES=@NAMES AND PWD=@PWD
     SET @MESSAGE='信息正确!'
     RETURN 1
    END
   ELSE
    BEGIN
     SET @MESSAGE='密码不正确!'
     RETURN 0
    END
END
ELSE
SET @MESSAGE='用户名不存在!'
RETURN 0

 

 

后台代码:

       SqlConnection con = new SqlConnection("server=.;database=TEST;uid=sa;pwd=;");
        con.Open();
        SqlCommand cmd = new SqlCommand("SHOW", con);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("@NAMES", SqlDbType.VarChar, 50).Value = "A";
        cmd.Parameters["@NAMES"].Direction = ParameterDirection.Input;
        cmd.Parameters.Add("@PWD", SqlDbType.VarChar, 50).Value = "S";
        cmd.Parameters["@PWD"].Direction = ParameterDirection.Input;
        cmd.Parameters.Add("@MESSAGE", SqlDbType.VarChar, 50);
        cmd.Parameters.Add("@RETURN", SqlDbType.VarChar, 50);
        cmd.Parameters["@MESSAGE"].Direction = ParameterDirection.Output;
        cmd.Parameters["@RETURN"].Direction = ParameterDirection.ReturnValue;
        cmd.ExecuteNonQuery();
        SqlDataReader sdr= cmd.ExecuteReader();

        if ((int)cmd.Parameters["@RETURN"].Value == 1)
        {
            Response.Write(cmd.Parameters["@MESSAGE"].Value);
            while (sdr.Read())
            {
                Response.Write(sdr.GetValue(0) + "/" + sdr.GetValue(1) + "/" + sdr.GetValue(2));
                Response.Write(sdr.GetInt32(0) + "/" + sdr.GetString(1) + "/" + sdr.GetString(2));
            }
        }
        else
        {
            Response.Write(cmd.Parameters["@MESSAGE"].Value);
        }

posted @ 2012-04-21 11:49  sidihu  阅读(163)  评论(0编辑  收藏  举报