【发布时间】:2013-04-20 22:10:32
【问题描述】:
我不确定为什么会收到此错误。我的问题的描述在代码下方。我在下面的代码中排除了一些 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)" 它会按预期工作。
【问题讨论】:
-
我收到此异常:System.Data.SqlClient.SqlException:'=' 附近的语法不正确。在 da.Fill(ds, "Classes$")
-
调试器显示什么?发生错误时
sqlCommand的值是多少?
标签: sql sql-server vb.net sql-server-2008 sqldataadapter