使用相同的存储过程插入选择

时间:2017-07-17 05:24:23

标签: c# sql-server stored-procedures

我正在使用C#在网站上工作。我将商店注册详细信息放在两个登录和注册表中。数据插入表中。现在,当我在登录页面时,这个email_id和pasword是从Database.So中选择的,因为我创建了一个商店程序,即``

ALTER PROCEDURE [dbo].[P_M_Login] 


    @Email_id nvarchar(50),
    @Password nvarchar(50),
    @Tran_Type nvarchar(1)
AS
 BEGIN

SET NOCOUNT ON;

IF @Tran_Type='I'

 if not exists(select 1 from M_Login where Email_id=@Email_id)


  BEGIN   

                  INSERT INTO M_Login ( Email_id, Password) 
                  VALUES(@Email_id,@Password);
        end

ELSE
 IF @Tran_Type='S'
 BEGIN

        Select Email_id,Password from M_Login;
 END
END`

现在我想在我的三层体系结构中使用此存储过程如何传递tran类型,这对我来说是完美的。

这是我调用存储过程的DAL类编码。

     public Int32 Login(BALRegistration objBEL)
        {

            int result;
            try
            {
                SqlCommand cmd1 = new SqlCommand("P_M_Login", con);
                cmd1.CommandType = CommandType.StoredProcedure;
                //cmd.Parameters.AddWithValue("@Regisration_Id", objBEL.Registration_Id); 
                cmd1.Parameters.AddWithValue("@Email_id", objBEL.Email_id);
                cmd1.Parameters.AddWithValue("@Password", objBEL.Password);




                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                result = cmd1.ExecuteNonQuery();
                cmd1.Dispose();
                if (result > 0)
                {
                    return result;
                }
                else
                {
                    return 0;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                if (con.State != ConnectionState.Closed)
                {
                    con.Close();
                }
            }

        }
    }
}

1 个答案:

答案 0 :(得分:0)

试试这个。由于您在存储过程中接受了参数,因此您只需要从DAL传递参数

    string type="s";
    SqlCommand cmd1 = new SqlCommand("P_M_Login", con);
    cmd1.CommandType = CommandType.StoredProcedure;
    cmd1.Parameters.AddWithValue("@Email_id", objBEL.Email_id);
    cmd1.Parameters.AddWithValue("@Password", objBEL.Password);
    cmd1.Parameters.AddWithValue("@Tran_Type ", type);