单元格未更新 - VB.net,oledb

Cell not updated - VB.net, oledb

我已经研究下面的代码很长时间了,就在我认为它可以工作的时候却没有,它甚至没有给我一个错误。

            Dim sql As String = "UPDATE " & table & " SET ArithmeticScore = @score WHERE DateAscending = " & todaysdate
            Using connection As New OleDbConnection(conn)
                Using command As New OleDbCommand(sql, connection)
                    connection.Open()
                    command.Parameters.Add("@score", OleDbType.Decimal).Value = score
                    MsgBox("score was added = " & score)
                    command.ExecuteNonQuery()
                    connection.Close()
                End Using
            End Using

todaysdate 当前持有值 27/04/2020 作为 date

conn 保存连接字符串,table 保存 table 名称。

消息框输出它的意思,score 有一个十进制值,应该添加到 table 中。

此代码的目的是更新 table 中的 ArithmeticScore 列,其中 DateAscending = 27/04/2020。当程序完成后,我检查了数据库,单元格仍然是空白的。为什么会这样?

这是因为执行的查询找不到所需的记录。
尝试为 DateAscending 列的 sql 参数设置正确的类型。

Dim sql As String = 
    $"UPDATE {table} SET ArithmeticScore = @score WHERE DateAscending = @todaysdate"

Using connection As New OleDbConnection(conn)
    Using command As New OleDbCommand(sql, connection)
        command.Parameters.Add("@score", OleDbType.Decimal).Value = score
        command.Parameters.Add("@todaysdate", OleDbType.Date).Value = DateTime.Now.Date

        connection.Open()
        Dim affectedRows As Integer = command.ExecuteNonQuery()

        ' Check or display that affectedRows is greater than zero
    End Using
End Using