Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查重复的电子邮件_C#_Asp.net - Fatal编程技术网

C# 检查重复的电子邮件

C# 检查重复的电子邮件,c#,asp.net,C#,Asp.net,我正在将记录插入数据库,并检查是否有重复的电子邮件id,但问题是电子邮件已经存在,显示消息,并且记录也将插入数据库 我的BAL public int insert(string firstname,string lastname,DateTime dob,string gender,string mobile,string country,string state,string email,string password) { ProfileMasterDAL dal=ne

我正在将记录插入数据库,并检查是否有重复的电子邮件id,但问题是电子邮件已经存在,显示消息,并且记录也将插入数据库

我的BAL

 public int insert(string firstname,string lastname,DateTime dob,string gender,string mobile,string country,string state,string email,string password)
    {
      ProfileMasterDAL dal=new ProfileMasterDAL();
      try
      {
          return ProfileMasterDAL.Insert(firstname, lastname, dob, gender, mobile, country, state, email, password);
      }
      catch (Exception ex)
      {

          throw ex;
      }
我的用户界面


您需要在BAL层而不是UI层进行检查。

在else语句中使用begin和end

if exists(select @EmailId from Profile_Master where EmailId=@EmailId) 
    set @result=0 
else 
begin
    set @result=1 

    insert into Profile_Master(FirstName,LastName,Dob,Gender,MobileNo,Country,State,EmailId,Password) 
      values (@FirstName,@LastName,@Dob,@Gender,@MobileNo,@Country,@State,@EmailId,@Password) 
    set @id=SCOPE_IDENTITY() 
end
建议

1) 在电子邮件id上创建唯一密钥

2) 在SP下使用

 ALTER procedure [dbo].[Insertreg]

 ( @id int output,@FirstName varchar (50),@LastName varchar(50) ,@Dob datetime,
@Gender varchar(20) ,@MobileNo nchar(10) ,@Country varchar(50) ,
 @State varchar (50),@EmailId varchar (50),@Password nchar (15),@result int output

 )
 as 
 begin

   declare @iCount int
    select @iCount = count(EmailId) from Profile_Master where EmailId=@EmailId

  SET @result = @iCount

  if @result > 0
 BEGIN
    set @result=0
    return
     END
    ELSE
     BEGIN
     set @result=1

INSERT INTO        Profile_Master(FirstName,LastName,Dob,Gender,MobileNo,Country,State,EmailId,Password)
 values 
(@FirstName,@LastName,@Dob,@Gender,@MobileNo,@Country,@State,@EmailId,@Password)
 set @id=SCOPE_IDENTITY()
 return @id
 end 
    end
您的sql查询

insert into                                                                                           Profile_Master(FirstName,LastName,Dob,Gender,MobileNo,Country,State,EmailId,Password)
 values 
(@FirstName,@LastName,@Dob,@Gender,@MobileNo,@Country,@State,@EmailId,@Password)
 set @id=SCOPE_IDENTITY()
是否从条件中重新创建将其置于任何条件中使用正确的方式开始和结束您将获得解决方案

Begin
if exists(select @EmailId from Profile_Master where EmailId=@EmailId)
set @result=0
else
 Begin set @result=1

insert into                                                                                           Profile_Master(FirstName,LastName,Dob,Gender,MobileNo,Country,State,EmailId,Password)
 values 
(@FirstName,@LastName,@Dob,@Gender,@MobileNo,@Country,@State,@EmailId,@Password)
 set @id=SCOPE_IDENTITY()
End
End

比较我的sql语句和你的sql语句。我没有在您的中设置开始/结束。请在此处共享您的完整存储过程,编辑您的问题。结果=pmBLL.insert(名字、姓氏、出生日期、性别、手机、国家/地区、州、电子邮件、密码);这里我得到的结果是-1,当记录被插入时,我不知道为什么?存储的进程现在看起来更好了。如果电子邮件已存在,则存储的进程应返回0,否则应插入新记录并返回1。你能更好地解释这个错误吗,也就是说,你期望发生什么?实际上发生了什么?如果你收到一个错误,认为电子邮件已经存在,也许它已经存在了。您的原始帖子显示了即使它已经存在也会尝试插入它的代码。Begin和end将阻止此SP尝试插入重复项。此外,您的代码调用pmBLL.insert,但您的SP为Insertreg。您不会显示任何将insert映射到SP的代码。
insert into                                                                                           Profile_Master(FirstName,LastName,Dob,Gender,MobileNo,Country,State,EmailId,Password)
 values 
(@FirstName,@LastName,@Dob,@Gender,@MobileNo,@Country,@State,@EmailId,@Password)
 set @id=SCOPE_IDENTITY()
Begin
if exists(select @EmailId from Profile_Master where EmailId=@EmailId)
set @result=0
else
 Begin set @result=1

insert into                                                                                           Profile_Master(FirstName,LastName,Dob,Gender,MobileNo,Country,State,EmailId,Password)
 values 
(@FirstName,@LastName,@Dob,@Gender,@MobileNo,@Country,@State,@EmailId,@Password)
 set @id=SCOPE_IDENTITY()
End
End