c#
  • asp.net
  • sql-server
  • 2015-11-20 43 views 3 likes 
    3

    我现在遇到麻烦,关于如何使我的存储过程在aspx页面上的SqlDataSource内工作。在SqlDataSource上的存储过程不与单引号内的SelectCommand一起使用单引号C#asp.net

    这是我的标记:

    <asp:SqlDataSource ID="SqlDataSourceGrantInfo" runat="server" 
        ConnectionString="<%# _connection.strConnectionString %>" 
        SelectCommand='<%# "EXEC dbo._GetCurrentSession " + Eval("Film_strCode") + " " %>' /> 
    

    上面的代码,而不在其单引号,虽然做工精细。但是当我试图单引号时,它不起作用。标签上会出现错误。

    看到这个标记:

    <asp:SqlDataSource ID="SqlDataSourceGrantInfo" runat="server" 
        ConnectionString="<%# _connection.strConnectionString %>" 
        SelectCommand='<%# "EXEC dbo._GetCurrentSession 'some_value_here' " %>' /> 
    

    请帮助我了解为什么存储与单引号过程aspx页面上不起作用?我需要使用单引号来编写这样的代码,但它不起作用。

    <asp:SqlDataSource ID="SqlDataSourceGrantInfo" runat="server" 
        ConnectionString="<%# _connection.strConnectionString %>" 
        SelectCommand='<%# "EXEC dbo._GetCurrentSession '" + Eval("Film_strCode") + "'" %>' /> 
    

    有没有办法让它工作?请帮帮我。

    +0

    尝试\”,而不是单引号( ') –

    +0

    如果你的第一个代码片段有效,那为什么要改变它呢? –

    +0

    @ JennyO'Reilly - 因为我在存储过程中将参数设置为字符串。存储的程序必须具有单引号(')。该代码工作正常,没有单引号,但它没有返回任何数据,因为我的存储过程的参数是字符串。 – Jarich

    回答

    7

    如果你想使用存储过程从SqlDataSource,你应该使用这种方法 - 定义命令类型为StoredProcedure,并正确设置参数:

    <asp:SqlDataSource ID="SqlDataSourceGrantInfo" runat="server" 
        ConnectionString="<%# _connection.strConnectionString %>" 
        SelectCommand="dbo._GetCurrentSession" 
        SelectCommandType="StoredProcedure"> 
        <SelectParameters> 
         <asp:Parameter Name="SessionValue" Type="Int32" DefaultValue="0" /> 
        </SelectParameters> 
    </asp:SqlDataSource> 
    
    +0

    谢谢!有用! – Jarich

    相关问题