Вы бы использовали несколько значений так же, как метод в настоящее время использует одно значение. По сути, в любую строку кода, где вы в настоящее время используете «имя пользователя», вы должны добавить «электронная почта». Например ...
Где ваш метод в настоящее время принимает один параметр:
public bool usersduplicate(string username)
принимает два:
public bool usersduplicate(string username, string email)
Где вы сейчас выбираете username
из данных :
string selectSQL = "SELECT username FROM Users";
выберите оба значения (предполагая здесь имя столбца):
string selectSQL = "SELECT username, email FROM Users";
Где вы сейчас сравниваете одно значение:
if (dr["username"].ToString().ToUpper() == username.ToUpper())
сравните оба:
if (dr["username"].ToString().ToUpper() == username.ToUpper() || dr["email"].ToString().ToUpper() == email.ToUpper())
В этом нет ничего особенного. По сути, когда вы можете что-то сделать (в этом случае сравнить входное значение со значением данных) и хотите сделать это снова, вы, как правило, просто повторите то, что вы уже делаете.