Datagridview SQL没有返回任何结果

时间:2015-04-20 15:48:43

标签: sql datetime datagridview where vb.net-2010

加载表单后,执行以下代码:

Try
            MyConn2.Open()
            da2 = New OleDbDataAdapter("Select * from tbl_bookings WHERE DateOfBooking = " & DateTime.Today, MyConn2)
            ds2 = New DataSet
            da2.Fill(ds2)
            DataGridView3.DataSource = ds2.Tables(0)
            MyConn2.Close()
        Catch ex As Exception
            If MyConn2.State <> ConnectionState.Closed Then MyConn2.Close()
        End Try

这应该检索所有结果,其中预订栏的日期与今天(当前日期)的日期相同。

尽管如此,datagridview不会抛出任何错误,但只将字段名称加载到datagridview中,而不是满足规范的条目(具有当前日期的条目)。

任何帮助都将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:0)

我不了解vb.net,但是从SQL方面来说,这可能是因为您试图将日期值(例如,2015年4月20日)与日期时间值(例如,4/20)进行比较/ 2015年上午11:57)。这种比较将查看第一个日期的时间部分为午夜(2015年4月20日上午12:00),因此不返回任何匹配项。

如果表中的任何值有时间,或者您的vb函数返回的时间不是午夜,请尝试使用以下内容替换SQL:

"Select * 
from tbl_bookings 
WHERE CAST(DateOfBooking AS DATE) = CAST('" & DateTime.Today & "' AS DATE)", MyConn2

答案 1 :(得分:0)

我认为你需要在日期附近单引号

da2 = New OleDbDataAdapter("Select * from tbl_bookings WHERE DateOfBooking = "' & DateTime.Today & "'", MyConn2)