我现在面临的问题是,当用户键入同一封电子邮件时,它仍会注册该成员。我不希望将我的电子邮件设置为主键。如果有人在try / catch语句下输入相同的电子邮件,我有办法停止该过程吗?
public string registerMember()
{
string status = "";
string ConnString = Properties.Settings.Default.ConnectionString;
string sql = "INSERT INTO Member (userName,Email,Gender,DateOfBirth,Nationality) VALUES(@name, @email, @gender, @dateOfBirth, @nationality)";
using (SqlConnection cn = new SqlConnection(ConnString))
{
SqlCommand cmd = new SqlCommand((sql), cn);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@email", email);
cmd.Parameters.AddWithValue("@gender", gender);
cmd.Parameters.AddWithValue("@dateOfBirth", dateOfBirth);
cmd.Parameters.AddWithValue("@nationality", nationality);
try
{
cn.Open();
cmd.ExecuteNonQuery();
status = "Member have been registered successfully!";
}
catch (Exception ex)
{
status = ex.Message;
throw;
}
finally
{
cmd.Dispose();
}
}
return status;
}
答案 0 :(得分:0)
最好的方法是编写另一个数据库查询,并检查我的朋友是否已经存在电子邮件。