ORA-01036: недопустимая ошибка имени / номера переменной для параметра в SELECT

Я пытаюсь заполнить серию выпадающих списков в 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)

Если я удаляю ":currentYear AS CURRENT_YEAR" из оператора SELECT, он работает нормально. Я использую тот же оператор в другом SELECT из объединения других таблиц без проблем.

StrYear происходит от метки в gridviewrow, и я проверил, что у него есть данные и что он действителен для CDate (я также попробовал его просто как строку с теми же результатами). StrItemVal(0) происходит из другого выпадающего списка (который успешно заполняется с использованием: currentYear передается в). Этот код вызывается только в том случае, если в раскрывающемся списке есть выбранное значение.

0 ответов

Другие вопросы по тегам