ORA-01036:SELECT中参数的非法变量名称/数字错误

时间:2012-12-07 14:50:38

标签: asp.net oracle gridview ora-01036

我正在尝试在GridView中填充一系列下拉列表。在RowDataBound事件中,我基于gridviewrow中的其他信息调用以获取用于填充行中下拉列表的项目。我在以下代码中收到“ORA-01036:参数上的非法变量名称/数字错误”。

Dim rowTemp As GridViewRow = ddlItemDesc.Parent.Parent

Dim lblYear As Label = rowTemp.FindControl("lblSchoolYear")
Dim strYear As String = lblYear.Text.Trim()

Dim strSelect As String = "SELECT FOO.BAR.PRODUCT_CODE || ' :: ' || FOO.BAR.PRODUCT_DESC AS txt, FOO.BAR.PRODUCT_KEY AS val, :currentYear AS CURRENT_YEAR FROM FOO.BAR WHERE (FOO.BAR.PRODUCT_KEY=:itemKey)"

Dim daTemp As New OracleDataAdapter(strSelect, oConn)   
daTemp.SelectCommand.Parameters.Add("currentYear", CDate(strYear))
daTemp.SelectCommand.Parameters.Add("itemKey", strItemVal(0))
Dim dtProd As New DataTable
daTemp.Fill(dtProd)

如果我从SELECT语句中删除“:currentYear AS CURRENT_YEAR”,它运行正常。我在其他SELECT的连接中使用相同的语句,没有任何问题。

strYear来自gridviewrow中的一个标签,我检查过它有数据并且它对CDate有效(我也尝试过它只是一个字符串,结果相同)。 StrItemVal(0)来自另一个下拉列表(使用:currentYear传入成功填充的下拉列表)。如果该下拉列表中包含选定的值,则仅调用此代码。

0 个答案:

没有答案