Я пытался выбрать в базу данных с тремя условиями, и два из них в одном столбце.
У меня есть flowlayoutpanel с usercontrol, и я не могу просмотреть все данные с разными значениями из тот же столбец.
Я пытался
SELECT borrowID, studentID, bookTitle, dateBorrowed, dueDate, status FROM tblBorrowedBook WHERE status = 'Not Returned' AND status = 'Overdue' AND studentNum = @studentNum
, но, к сожалению, не работает.
Я также пытался
public void BooksOnHand()
{
ucBooksOnHand uc = new ucBooksOnHand(this);
flowLayoutPanel1.Controls.Clear();
cn.Open();
cm = new SqlCommand("SELECT borrowID, studentID, bookTitle, dateBorrowed, dueDate, status FROM tblBorrowedBook WHERE status = 'Not Returned' AND studentNum = @studentNum", cn);
cm.Parameters.AddWithValue("@studentNum", frmissue.lblStudNo.Text);
dr = cm.ExecuteReader();
while (dr.Read())
{
//ucBooksOnHand uc = new ucBooksOnHand(this);
uc.Dock = DockStyle.Top;
uc.lblBorrowID.Text = dr["borrowID"].ToString();
uc.lblStudentID.Text = dr["studentID"].ToString();
uc.lblBookName.Text = dr["bookTitle"].ToString();
uc.lblDateBorrowed.Text = Convert.ToDateTime(dr["dateBorrowed"]).ToString("MM/dd/yyyy");
uc.lblDueDate.Text = Convert.ToDateTime(dr["dueDate"]).ToString("MM/dd/yyyy");
uc.lblStatus.Text = dr["status"].ToString();
uc.dtDueDate.Value = Convert.ToDateTime(dr["dueDate"]);
flowLayoutPanel1.Controls.Add(uc);
}
dr.Close();
cn.Close();
}
public void BooksOverdue()
{
cn.Open();
cm = new SqlCommand("SELECT borrowID, bookTitle, studentID, dateBorrowed, dueDate, status FROM tblBorrowedBook WHERE status = 'Overdue' AND studentNum = @studentNum", cn);
cm.Parameters.AddWithValue("@studentNum", frmissue.lblStudNo.Text);
dr = cm.ExecuteReader();
while (dr.Read())
{
ucBooksOnHand uc = new ucBooksOnHand(this);
uc.Dock = DockStyle.Top;
uc.lblBorrowID.Text = dr["borrowID"].ToString();
uc.lblStudentID.Text = dr["studentID"].ToString();
uc.lblBookName.Text = dr["bookTitle"].ToString();
uc.lblDateBorrowed.Text = Convert.ToDateTime(dr["dateBorrowed"]).ToString("MM/dd/yyyy");
uc.lblDueDate.Text = Convert.ToDateTime(dr["dueDate"]).ToString("MM/dd/yyyy");
uc.lblStatus.Text = dr["status"].ToString();
uc.dtDueDate.Value = Convert.ToDateTime(dr["dueDate"]);
flowLayoutPanel1.Controls.Add(uc);
}
dr.Close();
cn.Close();
}
Выше код работал для меня, но я ищу лучшее и простое решение для моей проблемы.
Вот некоторые данные из таблицы
borrowID studentID bookID studentNum bookTitle dateBorrowed dueDate returnedDate status
10 1 1 2020-01-0001 Worthless 2020-03-30 2020-04-06 Mar 30 2020 Returned
11 1 1 2020-01-0001 Worthless 2020-03-23 2020-03-27 Mar 30 2020 Returned
12 1 2 2020-01-0001 Heartless 2020-03-30 2020-04-06 Not Returned
13 1 1 2020-01-0001 Worthless 2020-03-15 2020-03-28 Overdue
И я хочу показать все имеющиеся у меня книги студента, который еще не вернулся и просрочен.
Пример вывода, который я хочу:
Books In Possesion:
Book Name Status
----------|-------------
Heartless | Not Returned
Worthless | Overdue