사람들이 UserID (int) 또는 사용자 이름 (string)을 사용하여 로그인 할 수있게하려고합니다. 이 작업을 수행하는 방법은 문자열을 허용하는 메서드와 int를 받아들이는 메서드라는 두 개의 별도 메서드를 만드는 것입니다. 그러나 나는 이것을 작동시키지 못했고 더 나은 해결책이있는 것 같았습니다.이런 식으로 메서드를 오버로드 할 수 있습니까?
public static string ForgotPassword (string username)
{
using (var conn = new SqlConnection(GetConnectionString()))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText =
@"SELECT
Password
FROM
Distributor
WHERE
Username = @username";
cmd.Parameters.AddWithValue("@username", (string)username);
using (var reader = cmd.ExecuteReader())
{
if (!reader.Read())
{
// no results found
return null;
}
return reader.GetString(reader.GetOrdinal("Password"));
}
}
}
public static string ForgotPassword (int username)
{
using (var conn = new SqlConnection(GetConnectionString()))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText =
@"SELECT
Password
FROM
Distributor
WHERE
DistributorID= @username";
cmd.Parameters.AddWithValue("@username", (int)username);
using (var reader = cmd.ExecuteReader())
{
if (!reader.Read())
{
// no results found
return null;
}
return reader.GetString(reader.GetOrdinal("Password"));
}
}
}
그들이 USER_ID 또는 사용자 이름으로 로그인 할 수 있도록하는 가장 좋은 방법은 무엇입니까?
원래 시도했을 때 작동하지 않았던 사항은 무엇입니까? –
이 접근법으로 어떤 오류가 있었습니까? – Tuan
오류가 발생하지 않았습니다. 항상 메서드의 문자열 버전을 호출한다고 가정합니다. testuser 및 1234를 암호로 사용하여 로그인 할 수 있습니다. 하지만 101과 1234를했을 때 데이터베이스에서 아무것도 찾을 수 없었습니다. –