Я исправил проблему, используя вместо этого параметризованные запросы.
public void LoadAllBorrowHistory()
{
int i = 0;
if (cboStatus.Text == "All Records")
{
gunaDataGridView1.Rows.Clear();
cn.Open();
cm = new SqlCommand("SELECT bb.borrowID, bb.bookTitle, bb.studentNum, (s.lastName + ' ' + s.firstName) AS Name, bb.dateBorrowed, bb.dueDate, bb.status FROM tblBorrowedBook as bb INNER JOIN tblStudent AS s ON bb.studentID = s.studentID WHERE dateBorrowed BETWEEN @dt1 AND @dt2", cn);
cm.Parameters.AddWithValue("@dt1", dt1.Value);
cm.Parameters.AddWithValue("@dt2", dt2.Value);
dr = cm.ExecuteReader();
while (dr.Read())
{
i += 1;
gunaDataGridView1.Rows.Add(i, dr["borrowID"].ToString(), dr["bookTitle"].ToString(), dr["studentNum"].ToString(), dr["Name"].ToString(), Convert.ToDateTime(dr["dateBorrowed"]).ToString("MM/dd/yyyy"), Convert.ToDateTime(dr["dueDate"]).ToString("MM/dd/yyyy"), dr["status"].ToString());
}
dr.Close();
cn.Close();
}
else
{
gunaDataGridView1.Rows.Clear();
cn.Open();
cm = new SqlCommand("SELECT bb.borrowID, bb.bookTitle, bb.studentNum, (s.lastName + ' ' + s.firstName) AS Name, bb.dateBorrowed, bb.dueDate ,bb.status FROM tblBorrowedBook as bb INNER JOIN tblStudent AS s ON bb.studentID = s.studentID WHERE status LIKE @status AND dateBorrowed BETWEEN @dt1 AND @dt2", cn);
cm.Parameters.AddWithValue("@status", cboStatus.Text);
cm.Parameters.AddWithValue("@dt1", dt1.Value);
cm.Parameters.AddWithValue("@dt2", dt2.Value);
dr = cm.ExecuteReader();
while (dr.Read())
{
i += 1;
gunaDataGridView1.Rows.Add(i, dr["borrowID"].ToString(), dr["bookTitle"].ToString(), dr["studentNum"].ToString(), dr["Name"].ToString(), Convert.ToDateTime(dr["dateBorrowed"]).ToString("MM/dd/yyyy"), Convert.ToDateTime(dr["dueDate"]).ToString("MM/dd/yyyy"), dr["status"].ToString());
}
dr.Close();
cn.Close();
}
}