检查注册用户邮件地址是否已在数据库中可用

时间:2016-04-07 06:15:39

标签: asp.net asp.net-mvc wcf data-access-layer

我的存储过程代码:

ALTER PROCEDURE [dbo].[SP_GetRegisterUsers]
   @Email varchar(50)
AS
   IF EXISTS(SELECT EmailId FROM RegTable WHERE EmailId = @Email)
   BEGIN
       declare @result varchar
       Select @result 'E-Mail ID Already Exists'
   END
   ELSE
   BEGIN
        print 'Successfully entered the E-Mail Address'
   END

这里存储过程成功执行。

我希望这个结果在我的C#MVC应用程序中使用,我也使用了WCF服务和数据访问层。

任何人都可以让我知道代码吗?

Register.cshtml btn设计代码:

<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" class="btn btn-default" value="Register" />
    </div>
</div>

WCF服务代码:

public class Registration : IRegistration
{
    public void Register(string email, string fullName, string password)
    {
        //WCF Web.Config Connection string is passed
        string conStr = ConfigurationManager.ConnectionStrings["ConnStringDb1"].ToString();
        RegistrationDAL registrationDal = new RegistrationDAL();
        registrationDal.Register(email, fullName, password, conStr);
    }

    //Create a new method to check if the user exists in the database
    public void ChkRegUser(string email)
    {
        string conStr = ConfigurationManager.ConnectionStrings["ConnStringDb1"].ToString();
        RegistrationDAL registrationDal = new RegistrationDAL();
        registrationDal.GetUser(email, conStr);
    }
}

DAL代码:

public void GetUser(string email, string connectionString)
{
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            SqlCommand cmd = new SqlCommand("SP_GetRegisterUsers", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Email", email);
            //cmd.Parameters.GetType.email()
            conn.Open();
            try
            {
                cmd.ExecuteNonQuery();
                string Return = (string)cmd.Parameters["@email"].Value;
                //if(email == null)
                //{

                //}
                //else
                //{

                //}
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

有一种简单的方法可以返回值表单sp.try

ALTER PROCEDURE [dbo].[SP_GetRegisterUsers]
   @Email varchar(50)
AS
   IF EXISTS(SELECT EmailId FROM RegTable WHERE EmailId = @Email)
   BEGIN

       Select 'E-Mail ID Already Exists'
   END
   ELSE
   BEGIN
        SELECT 'Successfully entered the E-Mail Address'
   END

和文件背后的代码

public void GetUser(string email, string connectionString)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand("SP_GetRegisterUsers", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter param = new SqlParameter();

                param = cmd.Parameters.Add("@email", SqlDbType.NVarChar);
               param.Direction = ParameterDirection.Input;
               param.Value = email;


                conn.Open();
                try
                {
                    var reader = cmd.ExecuteReader();
                    String returnValue = String.Empty;
                    while (reader.Read())
                    {
                       returnValue =Convert.ToString( reader.GetValue(0));
                       break;
                    }
                    Console.WriteLine(returnValue);

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
相关问题