.net 如何确保OleDbCommand参数的日期格式正确?

.net 如何确保OleDbCommand参数的日期格式正确?,.net,vb.net,ms-access,ado.net,.net,Vb.net,Ms Access,Ado.net,当我针对MDB数据库执行下面的代码时,数据表是空的,但是当我在查询工具中针对数据库运行此代码时,它返回2条记录 有什么问题吗 参数的日期格式是否存在问题(即8/5/13 vs 5/8/13) 我认为你是对的。我建议指定一个参数类型 如果datetime格式与使用的数据库不匹配,则这些比较将不起作用。使用DateTime.ToString(“FormatString”)确保dt格式相同。PS:不要将vb标记为C#。表3是什么,你想要笛卡尔产品吗?@TonyHopkinson:不,已删除。该行未在我

当我针对
MDB
数据库执行下面的代码时,数据表是空的,但是当我在查询工具中针对数据库运行此代码时,它返回2条记录

有什么问题吗

参数的日期格式是否存在问题(即8/5/13 vs 5/8/13)


我认为你是对的。我建议指定一个参数类型


如果datetime格式与使用的数据库不匹配,则这些比较将不起作用。使用
DateTime.ToString(“FormatString”)
确保dt格式相同。PS:不要将vb标记为C#。表3是什么,你想要笛卡尔产品吗?@TonyHopkinson:不,已删除。该行未在我的Visual Studio 2010 IDE中编译。错误消息是:
表达式是一个值,因此不能作为赋值的目标。
I答案是代码的新版本。现在它在VS2010中进行了测试。请不要忘记以类似的方式修改“@Date2”的代码。
Using oDB As OleDbConnection = GetDbConnection()
    Using oCmd As New OleDbCommand("SELECT * " & _
            " FROM Table1, Table2" & _
            " WHERE (Table1.Date BETWEEN @Date1 AND @Date2) AND (Table1.Id IS NULL) AND (Table2.number = Table1.num) AND (Table1.code1 = Table2.code1) ", oDB)
        oCmd.Parameters.AddWithValue("@Date1", Date.Today)
        oCmd.Parameters.AddWithValue("@Date2", Date.Today.AddDays(Me.intDaysAhead))
        oDB.Open()
        dt = New DataTable()
        Using da As OleDbDataAdapter = New OleDbDataAdapter(oCmd)
            da.Fill(dt)
        End Using
    End Using
End Using
 oCmd.Parameters.Add("@Date1", OleDb.OleDbType.Date).Value = Date.Today