我在sql server2000中有FrmDt
和ToDt
作为datetime列。我将这些列中的日期与两个datetimepicker进行比较,如下所示:
SQL查询:
SqlCmd = New SqlCommand("SELECT DISTINCT AllwnsDedId FROM vwGetEmpCntrctWisePaymnt
WHERE Type=1 AND Emp_ID='" & txtEmpID.Text & "'
AND FrmDt>='" & dtp1dtp1.Value.Date & "' AND ToDt<='" & dtp2dtp1.Value.Date & "'", Sqlconn)
在查询分析器中,我尝试了:
FrmDt>='01/21/2015' AND ToDt<='01/21/2016'
它给了我正确的输出。但是我没有在Vb.net中获得输出?什么遗失?
答案 0 :(得分:2)
为了使其可靠地工作,您需要使用正确的Date数据类型。将SQL更改为类似的内容
WHERE FrmDt>=@FrmDt AND ToDt<=@ToDt
然后在命令中添加2个参数对象,每个日期对应一个。你的代码最终应该是这样的;
SqlCmd = New SqlCommand("SELECT DISTINCT AllwnsDedId FROM vwGetEmpCntrctWisePaymnt
WHERE Type=1 AND Emp_ID='" & txtEmpID.Text & "'
AND FrmDt>=@FrmDt AND ToDt<=@ToDt", Sqlconn)
SqlCmd.Parameters.Add("@FrmDt", SqlDbType.DateTime).Value = dtp1dtp1.Value.Date
SqlCmd.Parameters.Add("@ToDt", SqlDbType.DateTime).Value = dtp2dtp1.Value.Date