Ячейка не обновлена ​​- VB. net, oledb - PullRequest
0 голосов
/ 27 апреля 2020

Я уже давно борюсь с приведенным ниже кодом, и просто когда я подумал, что это работает, это не так, и это даже не дает мне ошибки.

            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 содержит имя таблицы.

В окне сообщения выводится то, для чего оно предназначено, с score, имеющим десятичное значение, которое должно быть добавлено в таблицу.

Цель этого кода - обновить столбец ArithmeticScore в таблице, где DateAscending = 27/04/2020. Когда программа закончена, и я проверяю базу данных, ячейка остается пустой. Почему это может быть?

1 Ответ

0 голосов
/ 27 апреля 2020

Это связано с тем, что выполненный запрос не может найти требуемую запись.
Попробуйте установить правильный тип для параметра sql для столбца DateAscending.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...