データベース内のテーブルを更新しようとしていますが、ボタンを押すたびに、同じレコードの別の列が更新されるはずです。これを行う方法についてのアイデアはありますか?
テーブルには、QuizID(autonumber)、QuizName(string)、OutOf(integer)、Question1(integer)、Question2などの列があります。ボタンを押すたびに、次のQuestionX列が更新されます。
Using cmd As New OleDbCommand("UPDATE Quizzes SET @questionColumn = @questionID WHERE QuizName = @quizName", myConnection)
cmd.Parameters.Add("@questionColumn", OleDbType.Char).Value = "Question" & questionNumber.ToString()
cmd.Parameters.Add("@questionID", OleDbType.Integer).Value = questionID
cmd.Parameters.Add("@quizName", OleDbType.Char).Value = txtQuizName.Text
cmd.ExecuteNonQuery()
End Using
questionNumber
ボタンが押されるたびに1ずつ増加する整数でquestionID
ありtxtQuizName.Text
、以前に取得された値です。
QuestionX
列が更新されることを期待していましたが、コード@questionColumn
は更新できないというエラーをスローします。しかしQuestion1
、それをパラメーターに置き換えてコメントアウトすると、正常に機能しますが、更新する列は(明らかに)変更されません。
今回は何を間違えましたか?
列名をパラメーターにバインドすることはできません。クエリを動的に作成する必要があります。
Using cmd As New OleDbCommand("UPDATE Quizzes SET Question" & questionNumber.ToString() & " = @questionID WHERE QuizName = @quizName", myConnection)
cmd.Parameters.Add("@questionID", OleDbType.Integer).Value = questionID
cmd.Parameters.Add("@quizName", OleDbType.Char).Value = txtQuizName.Text
cmd.ExecuteNonQuery()
End Using
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加