2014-11-14 17 views
0

我想參數化一個asp:SqlDatasource選擇命令的from語句。我現在的命令是硬編碼:從SqlDataSource中的語句參數化C#asp.net

<asp:SqlDataSource ID="sdsSPs" runat="server" 
    ConnectionString="<%$ ConnectionStrings:AAPs_DevConnectionString %>" 
    SelectCommand="select SPECIFIC_NAME from WIN_Dev.INFORMATION_SCHEMA.ROUTINES where ROUTINE_TYPE = 'Procedure'"> 
</asp:SqlDataSource> 

但是我期待更多的東西是這樣的:

<asp:SqlDataSource ID="sdsSPs" runat="server" 
     ConnectionString="<%$ ConnectionStrings:AAPs_DevConnectionString %>" 
     SelectCommand="select SPECIFIC_NAME from @Path where ROUTINE_TYPE = 'Procedure'"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="lblDB" PropertyName="text" Name="Path" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 

甚至更​​優選將是這樣的:

<asp:SqlDataSource ID="sdsSPs" runat="server" 
     ConnectionString="<%$ ConnectionStrings:AAPs_DevConnectionString %>" 
     SelectCommand="select SPECIFIC_NAME from @Path.INFORMATION_SCHEMA.ROUTINES where ROUTINE_TYPE = 'Procedure'"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="lblDB" PropertyName="text" Name="Path" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 

所有這些trys回來失敗。我無法提前知道數據庫是什麼,因爲用戶可以選擇它。有沒有辦法做到這一點?如果是的話,它是什麼?謝謝你的幫助!

回答

0

您可能需要編寫動態查詢/程序的要求,

Create Proc Get_From_Dynamic_Table 
@tablename varchar(50) 
as 
begin 
declare @sqlQuery nvarchar(100) 
Set @sqlQuery = 'Select * from '[email protected] 
exec sp_executesql @sqlQuery 
end 

注:代碼沒有經過測試。