私は、会社の従業員がプログラムのクロックイン/アウトをする場合に「提示」するように設定しようとしています。データベースには同じ名前のフィールドがあり、誰かが存在するかどうかを格納するブール値を使用します。私は自分のSQLステートメントが正しいと信じています。私が続けている問題は、「追加情報:1つまたは複数の必須パラメータに値が指定されていません」ここでSQLパラメータに関する問題
は、私はUPDATEクエリを実行するために使用していたコードです:
Private Sub btnClockout_Click(sender As Object, e As EventArgs) Handles btnClockout.Click
'SelectedEmployee = lstClockin.FocusedItem.Text
'lblClockinStatusColor.BackColor = Color.Red
'btnClockout.Enabled = False
'btnClockin.Enabled = True
'lblClockinStatus.Text = "Employee is: Clocked Out"
'If txtInfoEmployeeID.Text = "" Then
' MsgBox("You need to select a employee to clock-out.", MsgBoxStyle.Exclamation)
'End If
con.ConnectionString = provider & datafile
con.Open()
sqlstatement = ("UPDATE [EmployeeAccounts] SET [Present] = False WHERE [EmployeeID] = '" & SelectedEmployee & "'")
da = New OleDb.OleDbDataAdapter(sqlstatement, con)
da.Fill(ds, "ClockOutButton")
con.Close()
End Sub
私はVBエキスパートではありませんので、私は答えを試みません。しかし、あなたは現在のクエリがSQLインジェクションを受け易いことに気づくべきです。代わりに、パラメータ化されたクエリを使用する必要があります。 –
@TimBiegeleisen +1、パラメータ照会の場合は[この質問](http://stackoverflow.com/questions/20845283/vb-net-sql-parameters-update?rq=1)を参照してください。 –
また、新しいOldDbDataAdapterを使用して更新する必要がありますか? –