2016-04-07 10 views
0

Benim saklı yordam kodu: BuradaKontrol Kayıtlı Kullanıcı Posta Adresi veritabanında zaten varsa ya da değil

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 

saklı yordam başarıyla yürütülen.

Bu sonucun C# MVC uygulamasında kullanılmasını istiyorum, ayrıca bir WCF hizmeti ve veri erişim katmanı kullandım.

Kodu bana tanıyan biri var mı?

Register.cshtml btn tasarım kodu:

<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 hizmeti kodu:

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 Kodu:

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); 
      } 
     } 
} 

kimse yardımcı misiniz?

+0

Yan not: ** değil ** için 'sp_' önek kullanmalıdır saklı yordamlarınız. Microsoft [kendi kullanımı için öneki ayırmıştır (bkz. * Kayıtlı Yordamları İsme *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) ve Gelecekte bazen bir isim çatışması riskiyle karşı karşıyasınız. [Ayrıca saklı yordam performansınız için de kötüdür] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Sadece 'sp_''den kaçınmak ve önek olarak başka bir şey kullanmak ya da hiç bir önek kullanmamak en iyisidir! –

+0

Mesajınızı uygulamanıza taşıyın (örn. Yerelleştirme). Saklı yordam doğru veya yanlış döndürebilir. – Emanuele

cevap

0

değeri formu sp.try dönen basit bir yolu yoktur bu

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 

ve kod dosyası arkasında

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); 
       } 
      } 
     } 
İlgili konular