我正在使用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();
}
}
}
}
}
答案 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);