检查用户是否已存在于带有C#的MySql数据库中

本文关键字:MySql 数据库 于带 用户 是否 存在 检查 | 更新日期: 2023-09-27 18:21:34

我有以下代码,我希望该代码能查询数据库:

 MySqlConnection connection = new MySqlConnection(Connection);
 MySqlCommand cmd;
 connection.Open();
  try
  {
    cmd = connection.CreateCommand();
    cmd.CommandText = ("INSERT INTO edata (username) VALUES ('" + this.NewUserName.Text +"') ;");
    MySqlDataReader myReader;
    myReader = cmd.ExecuteReader();
    loading.Show();
    MessageBox.Show("Your Account Has Been Created!!");
    connection.Close();
  }
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message);
  }

如果客户端输入(NewUserName.Text)与数据库中的用户名相同,则应显示错误消息,否则将出现重复的用户名。我该怎么做?

我已经将连接作为字符串。

提前感谢!!!

附言:我是一名学习C#和MySql的学生,我很感激你的帮助和建议!

检查用户是否已存在于带有C#的MySql数据库中

您可以在数据库中的username字段上创建一个Unique Constraint,如果用户已经存在,这将引发异常。

或者,您可以从表中手动选择,并在插入之前查看是否有同名用户。

您可以在适当的列(doc)上创建唯一索引。

CREATE UNIQUE INDEX uq_username ON edata (username);

您正在使用成员类吗?

      MembershipCreateStatus createStatus;
        MembershipUser newUser = Membership.CreateUser(txtEmail.Text, "password", txtEmail.Text,"What was your first school?","idk", true, out createStatus);

            switch (createStatus)
        {
            case MembershipCreateStatus.Success:
           //do your actions here
            case MembershipCreateStatus.DuplicateUserName:
                CreateAccountResults.Text = "There already exists a user with this username.";
                break;
            case MembershipCreateStatus.DuplicateEmail:
                CreateAccountResults.Text = "There already exists a user with this email address.";
                break;
            case MembershipCreateStatus.InvalidEmail:
                CreateAccountResults.Text = "There email address you provided in invalid.";
                break;
            case MembershipCreateStatus.InvalidAnswer:
                CreateAccountResults.Text = "There security answer was invalid.";
                break;
            case MembershipCreateStatus.InvalidPassword:
                CreateAccountResults.Text = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character.";
                break;
            default:
                CreateAccountResults.Text = "There was an unknown error; the user account was NOT created.";
                break;
        }

如果你没有使用它,那么只需创建一个读取数据库的方法,并在上面的代码之前调用它:

string doesuserexist = ReadDatabase("Select Email from Patients where Email=@emailaddress").TrimEnd();
            if (checkemail != "")
            {
                CreateAccountResults.Text = "User Email Already Exists";
                return;
            }

您必须编写自己的ReadDatabase方法,但从上面发布的代码中,您显然知道如何使用select替换insert sql语句。