Заполнение столбца с текущей датой каждый раз, когда форма показывается или загружается - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу заполнить все записи в столбце текущей датой, чтобы я мог сравнить ее со столбцом DateofTest и определить, сколько дней прошло с момента последнего теста. Я думаю, что могу определить количество дней, но не могу понять, как заполнить столбец текущей датой.

 Private Sub Reports_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
    mySql = "Update Studentdata, SET currentDate = Date()"
    ConnDB()
    myCommand = New OleDbCommand(mySql, myConnection)

End Sub

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Вы действительно выполняете команду обновления? Попробуйте это:

    Dim myConnection As New OleDb.OleDbConnection()  'Complete as needed
    Dim mySql As String = "Update Studentdata SET currentDate = Date()"
    Using cmd As New OleDb.OleDbCommand(mySql, myConnection)
        Try
            cmd.Connection.Open()
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "ERROR UPDATING")
        Finally
            cmd.Connection.Close()
        End Try
    End Using

или попробуйте заполнить Date из вашего кода и предоставить его в качестве параметра, например:

     Using cmd As New OleDb.OleDbCommand()
        cmd.Connection = myConnection
        Try
            cmd.Connection.Open()
            cmd.CommandText = "Update Studentdata SET currentDate = @Date"
            cmd.Parameters.Add(New OleDb.OleDbParameter("@Date", DateTime.Now))
            cmd.ExecuteNonQuery()
        Catch ex1 As Exception
            MessageBox.Show(ex1.Message, "ERROR UPDATING")
        Finally
            cmd.Connection.Close()
        End Try
    End Using
0 голосов
/ 20 февраля 2020

Насколько я помню, база данных доступа может иметь некоторые проблемы с датами, которые включают миллисекунды, так что вы можете сделать это (и удалить запятую перед "SET" также):

Dim dateWithoutMiliseconds as DateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)
mySql = String.Format("Update Studentdata SET currentDate = {0}", dateWithoutMiliseconds)
...