なぜこのエラーが発生するのかわかりません。私の問題の説明はコードの下にあります。以下のコードでは、可能な限り短くするために、Select Cases とフィールドの一部を除外しています。
Private Sub SetClassGrid(ByVal ClassCategory As String)
Dim connectionString As String = WebConfigurationManager.ConnectionStrings("theDataBase").ConnectionString
Dim con As New SqlConnection(connectionString)
Dim sqlCommand As StringBuilder = New StringBuilder()
sqlCommand.Append("SELECT Name, City, State FROM Classes$ WHERE (ClassesCategoryID = ")
Select Case ClassCategory
Case "Art"
sqlCommand.Append("1)")
Case "Drama"
sqlCommand.Append("2)")
Case "Aquarium"
sqlCommand.Append("2)")
End Select
Dim cmd As String = sqlCommand.ToString()
Dim da As New SqlDataAdapter(cmd, con)
Dim ds As New DataSet()
Try
con.Open()
da.Fill(ds, "Classes$")
Finally
con.Close()
End Try
GridView1.DataSource = ds.Tables("Classes$")
GridView1.DataBind()
End Sub
Select Case の場合、ClassCategory = "Art" の場合は正常に動作します。ただし、ClassCategoryが他の値と等しい場合、エラーが発生します。
また、Select Case の場合、ケースが「Art」で、sqlCommandを ="1)" から ="2)" に変更すると、意図したとおりに機能します。