2

我将 Oracle.DataAccess.Client 与 11g 数据库一起使用。我已经像这样设置了一个 SQL 数据源。

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:OracleRoadmap %>" 
    ProviderName="<%$ ConnectionStrings:OracleRoadmap.ProviderName %>" 


    SelectCommand="SELECT * FROM &quot;FILES&quot; WHERE (&quot;FILE_NAME&quot; LIKE '%' + ? + '%')">
    <SelectParameters>
        <asp:ControlParameter ControlID="txtSearchValue" Name="FILE_NAME" 
            PropertyName="Text" Type="String" DefaultValue="" />
    </SelectParameters>
</asp:SqlDataSource>

ORA-00911: 运行此程序时字符无效。但是,如果我对 FILE_NAME 进行硬编码,那么它就可以工作。

"SELECT * FROM FILES WHERE FILE_NAME LIKE '%.zip%'

我已经尝试过同样的事情,但是针对 SQL Server 并且没有任何问题。

谢谢

4

1 回答 1

0

并不是我一直在寻找的答案,但我已经在后面的页面代码中为 SQLDatasource 动态创建了 SelectCommand,这可以解决这个问题。

我怀疑这个问题与分别传递给 Oracle 的语句和变量有关,并且在 Oracle 中创建完整语句时产生了错误。不幸的是,我无法访问 Oracle 日志来查看正在发生的事情。

于 2012-08-23T08:46:15.887 回答