Ich habe derzeit eine asp.net-Website. Ich habe jedoch festgestellt, dass Benutzer sich auf meiner Registrierungsseite mehrmals mit demselben Benutzernamen registrieren können. Daher frage ich mich, ob es eine Möglichkeit gibt, die Benutzer daran zu hindern, sich mehrmals mit demselben Benutzernamen zu registrieren.Wie zu verhindern, dass doppelte Datenwerte in MySQL-Datenbank erscheinen
Ich weiß, dass ich eine Spalte in meiner Datenbank festlegen kann, um einen Primärschlüssel zu haben ... Aber was mache ich, wenn ich mehrere Spalten haben möchte, um Primärschlüssel zu haben?
Das ist mein Code einfügen ....
MySqlCommand command = mcon.CreateCommand();
mcon.Open();
command.CommandText = "insert into pointofcontact (FirstName, LastName, EmailAddress, ContactNumber, BackupContactNumber, Address, Gender, Username, Password, Status, ProfilePic) values(?firstname, ?lastname, ?emailaddress, ?contactnumber, ?backupcontactnumber, ?address, ?gender, ?username, ?password, ?status, ?image)";
command.Parameters.AddWithValue("?firstname", firstname);
command.Parameters.AddWithValue("?lastname", lastname);
command.Parameters.AddWithValue("?emailaddress", email);
command.Parameters.AddWithValue("?contactnumber", mobileNumber);
command.Parameters.AddWithValue("?backupcontactnumber", backupNumber);
command.Parameters.AddWithValue("?address", homeAddress);
command.Parameters.AddWithValue("?gender", gender);
command.Parameters.AddWithValue("?username", username);
command.Parameters.AddWithValue("?password", password);
command.Parameters.AddWithValue("?status", status);
command.Parameters.AddWithValue("?image", imageName);
command.ExecuteNonQuery();
mcon.Close();
MySqlDataReader reader = null;
mcon.Open();
MySqlCommand command2 = mcon.CreateCommand();
command2.CommandText = "select * from pointofcontact where Username = ?username";
command2.Parameters.AddWithValue("?username", tbUsername.Text);
reader = command2.ExecuteReader();
if (reader != null && reader.HasRows)
{
lblValidate.Text = "Username already exists.";
}
Response.Redirect("IndexAfterLogin1.aspx");
Die Daten, die die Benutzereingaben der Lage sind, in meine MySQL-Datenbank eingefügt werden, aber die eingegebenen Daten in der Lage, für Benutzername und E-Mail-Felder wiederholt werden für verschiedene Benutzer, und das möchte ich nicht.
Mögliche Duplikat [? Wie kann ich eindeutige Einschränkung für mehrere Spalten in MySQL angeben] (http://stackoverflow.com/questions/635937/how-do-i-specify-unique-constraint-für-mehrere-spalten-in-mysql) –
Mindestens einige Einschränkungen der Datenbank hinzufügen, so dass Code eine Ausnahme auslösen wird, wenn Sie versuchen, ein Duplikat einzufügen. –