데이터베이스의 두 테이블에서 데이터를 가져옵니다.데이터베이스에서 가져온 다른 클래스 속성에 따라 클래스 속성에 데이터 제공
표 1 - 회원 :
public List<Member> ListMembers()
{
List<Member> Members = new List<Member>();
string SELECT = "SELECT * FROM Members ORDER BY Id";
using (sqlConnection = new SqlConnection(sqlConnectionString_WORK))
{
sqlConnection.Open();
using (SqlCommand sqlCommand = new SqlCommand(SELECT, sqlConnection))
{
var sqlReader = sqlCommand.ExecuteReader();
while (sqlReader.Read())
{
var member = new Member
{
Id = Convert.ToInt32(sqlReader["Id"]),
Name = sqlReader["Name"].ToString(),
Surname = sqlReader["Surname"].ToString(),
EntryDate = Convert.ToDateTime(sqlReader["EntryDate"])
};
if (member.EntryDate < DateTime.Today)
{
member.Status = Status.Unpaid.ToString();
}
else
{
member.Status = Status.Paid.ToString();
}
Members.Add(member);
}
}
}
return Members;
}
표 2 - 지불 :
public List<Payment> ListPayments(Payment entity)
{
List<Payment> Payments = new List<Payment>();
string SELECT = "SELECT * FROM Payments WHERE Id = @Id";
using (sqlConnection = new SqlConnection(sqlConnectionString_WORK))
{
sqlConnection.Open();
using (SqlCommand sqlCommand = new SqlCommand(SELECT, sqlConnection))
{
sqlCommand.Parameters.Add("@Id", SqlDbType.Int).Value = entity.Id;
var sqlReader = sqlCommand.ExecuteReader();
while (sqlReader.Read())
{
var payment = new Payment
{
Id = Convert.ToInt32(sqlReader["Id"]),
Amount = Convert.ToDecimal(sqlReader["Amount"]),
StartDay = Convert.ToDateTime(sqlReader["StartDay"]),
EndDay = Convert.ToDateTime(sqlReader["EndDay"])
};
Payments.Add(payment);
}
}
}
return Payments;
}
지불의 ID는 특정 회원의 ID와 동일합니다. (회원 ID가 100 인 경우 모든 지불금은 동일한 ID 100을가집니다).
Now ... ListMembers() Status2는 EntryDate에 따라 Statuses에 "유료"와 "지불하지 않음"을 주었지만 최종 지급액에 따라 상태를 제공하려고합니다. 그래서, 대신 :
if (member.EntryDate < DateTime.Today)
{
member.Status = Status.Unpaid.ToString();
}
이 있어야한다 :
if (lastPayment < DateTime.Today) // lastPayment is just a word I'm using, It's not declared anywhere, I don't know how to get that value.
{
member.Status = Status.Unpaid.ToString();
}
정말 여기 잃었어요이, 누군가가 나를 도울 수 있습니까? 나는 무엇을해야할지 모른다.
"lastPayment"가 가장 최근의 'EndDay'가있는 것이 맞습니까? –
@ColmPrunty 예. 그래서 실제로 "if (theLastEndDay
Etrit
이 작업을 수행 했습니까? –