2017-07-17 49 views
0

我正在使用C#在网站上工作。我在两个表中登录和注册了Store注册详细信息.Data被插入到表中。现在,当我登录页面上此EMAIL_ID和pasword从Database.So选择,对于我创建了is`使用相同的存储过程插入选择

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 protected]_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(); 
       } 
      } 

     } 
    } 
} 
+0

检查[this](https://stackoverflow.com/questions/1260952/how-to-execute- a-stored-procedure-within-c-sharp-program) –

+0

你可以提供调用这个存储过程的现有代码吗? – zzT

+0

https://www.aspsnippets.com/Articles/GridView-CRUD-Select-Insert-Edit-Update-Delete-using-Single-Stored-Procedure-in-ASPNet.aspx –

回答

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); 
+0

谢谢!但是我在类型上遇到了错误。 –

+0

您需要指定类型,例如字符串Type ='S'; –