c# - 如何防止重复的数据值出现在 MySQL 数据库中

标签 c# mysql asp.net

我目前有一个 asp.net 网站。但是我注意到在我的注册页面中,用户可以使用相同的用户名多次注册。因此,我想知道是否有一种方法可以防止用户使用相同的用户名多次注册。

我知道我可以在我的数据库中设置一个列有一个主键...但是如果我想有多个列有主键我该怎么办?

这是我的插入代码....

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

用户输入的数据能够插入到我的 MySQL 数据库中,但输入的数据对于不同用户的用户名和电子邮件字段能够重复,我不希望这种情况发生。

最佳答案

为此,您可以在表中添加一个唯一键 else 创建一个函数以在插入之前检查数据库

关于c# - 如何防止重复的数据值出现在 MySQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38911043/

相关文章:

c# - 参数化查询错误c#

C# 检查分割字符串的一个计数,如果正确则打印另一个计数

php - 按列将动态数据显示为表格

asp.net - 移动到新服务器后报告查看器问题

c# - 在 LINQ 查询中使用 ToString()?

c# - 如何从 C# 应用程序创建 HTML 文本?

c# - 将包含属性的上下文传递给 TypeConverter

mysql - 如何在 typeorm 中建立 OneToMany 关系?

php - 与更新表中数量相关的错误

asp.net - ASP.NET 3.5 中的 Response.Clear