【发布时间】:2020-04-01 09:04:51
【问题描述】:
美好的一天,我正在尝试过滤两个 datetimepicker 之间的 datagridview。
我试过了
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.status FROM tblBorrowedBook as bb INNER JOIN tblStudent AS s ON bb.studentID = s.studentID WHERE dateBorrowed BETWEEN '" + dt1.Value + "'AND'" + dt2.Value + "'", cn);
dr = cm.ExecuteReader();
while (dr.Read())
{
i += 1;
gunaDataGridView1.Rows.Add(i, dr["borrowID"].ToString(), dr["bookTitle"].ToString(), dr["studentNum"].ToString(), dr["Name"].ToString(), 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.status FROM tblBorrowedBook as bb INNER JOIN tblStudent AS s ON bb.studentID = s.studentID WHERE status LIKE '" + cboStatus.Text + "%'", cn);
dr = cm.ExecuteReader();
while (dr.Read())
{
i += 1;
gunaDataGridView1.Rows.Add(i, dr["borrowID"].ToString(), dr["bookTitle"].ToString(), dr["studentNum"].ToString(), dr["Name"].ToString(), dr["status"].ToString());
}
dr.Close();
cn.Close();
}
}
抛出错误
'从字符串转换日期和/或时间时转换失败。'
我已将日期时间值设置为DateTime.Now,所以我不知道为什么会收到此错误。请帮忙。
【问题讨论】:
-
您必须将 c# datetime 值转换为正确的 sql datetime 值,然后它应该可以工作
-
@kemchan:不是 SQL 工作方面的专家,但 dt1.Value.ToString() 是否解决了问题?也是 GoodDay 问候的 ↑ ;)
标签: c# sql-server winforms