c#
  • asp.net
  • sql-server
  • 2015-11-20 28 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

    相關問題