Oledb No Value Given for an or more required parameters VB.NET
Oledb No Value Given for one or more required parameters VB.NET
谁能告诉我我的代码有什么问题?我在这里是一个完全的新手,这是我很长一段时间以来第一次尝试写东西,
下面的代码应该更新访问数据库中的两个字段
Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DatabasePath\database.accdb"
Dim SqlString As String = "update SaintStaff set [StaffHours]=[@CAHours],[RecordedTime]=[@Time] where [StaffName] = " & Label2.Text & ""
'updates record in SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("[@CAHours]", Label6.Text)
cmd.Parameters.AddWithValue("[@Time]", Label10.Text)
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub
我收到以下错误
System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'
它在每一行突出显示 cmd 文本,我不知道我做错了什么,有人能帮忙吗?
谢谢
MatSnow 和 olivier-jacot-descombes 在评论中回答了这个问题,正确的代码如下
Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DatabasePath\Database.accdb"
Dim SqlString As String = "update SaintStaff set StaffHours = @CAHours, RecordedTime = @Time where StaffName = @staffname "
'updates record in SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("@CAHours", OleDbType.VarChar).Value = Label6.Text
cmd.Parameters.Add("@Time", OleDbType.VarChar).Value = Label10.Text
cmd.Parameters.Add("@Staffname", OleDbType.VarChar).Value = Label2.Text
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub
谁能告诉我我的代码有什么问题?我在这里是一个完全的新手,这是我很长一段时间以来第一次尝试写东西,
下面的代码应该更新访问数据库中的两个字段
Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DatabasePath\database.accdb"
Dim SqlString As String = "update SaintStaff set [StaffHours]=[@CAHours],[RecordedTime]=[@Time] where [StaffName] = " & Label2.Text & ""
'updates record in SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("[@CAHours]", Label6.Text)
cmd.Parameters.AddWithValue("[@Time]", Label10.Text)
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub
我收到以下错误 System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'
它在每一行突出显示 cmd 文本,我不知道我做错了什么,有人能帮忙吗?
谢谢
MatSnow 和 olivier-jacot-descombes 在评论中回答了这个问题,正确的代码如下
Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DatabasePath\Database.accdb"
Dim SqlString As String = "update SaintStaff set StaffHours = @CAHours, RecordedTime = @Time where StaffName = @staffname "
'updates record in SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("@CAHours", OleDbType.VarChar).Value = Label6.Text
cmd.Parameters.Add("@Time", OleDbType.VarChar).Value = Label10.Text
cmd.Parameters.Add("@Staffname", OleDbType.VarChar).Value = Label2.Text
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub