0

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 を使用して正常に入力されたもの) から取得されます。このコードは、ドロップダウン リストに選択された値がある場合にのみ呼び出されます。

4

0 に答える 0