单元格未更新 - 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
我已经研究下面的代码很长时间了,就在我认为它可以工作的时候却没有,它甚至没有给我一个错误。
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