将VB.NET项目移至新计算机后,日期无法正常工作

时间:2018-11-11 17:35:55

标签: .net vb.net ms-access

我有一个可以读取和写入Access 2016 DB的应用程序,我刚刚将我的数据库和项目移到了新计算机上,现在当我从VB运行SELECT命令时,它会向后读取日期(例如,07/11 / 2018年应该是11月7日,但VB将其读为7月11日。

问题肯定是VB而不是Access,因为当我在Access 07/11/2018中按月筛选日期字段时,我正确地将其过滤为11月。

是否需要设置某种全局设置?

这是代码:

        Public Shared Sub Update_All()

        Dim connectString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & MainForm.mainDir & "\eBase.accdb"
        Dim cn As OleDbConnection = New OleDbConnection(connectString)

        cn.Open()

        Dim selectString As String = "Select e_date, e_name FROM Results WHERE eRats Is Null Order By e_date ASC;"

        Dim cmd As OleDbCommand = New OleDbCommand(selectString, cn)
        Dim reader As OleDbDataReader = cmd.ExecuteReader()

        While (reader.Read())
            Update_R(reader("e_date").ToString, reader("e_name").ToString)
        End While

        reader.Close()
        cn.Close()
    End Sub

1 个答案:

答案 0 :(得分:1)

没有您的代码,我们不得不猜测。

听起来像您使用字符串串联进行了过滤。如果是这样,请将不变的格式应用于过滤器值:

"Select * From YourTable Where DateField = #" & FilterDateValue.ToString("yyyy'/'MM'/'dd") & "#"

许多人会告诉您使用参数来防止此类麻烦。