我知道這是可能的代碼隱藏,但改變那裏的selectcommand並綁定它會導致gridview刷新和排序問題,所以這不是我正在尋找的答案。在ASPX SqlDataSource SelectCommand中使用字符串變量,這可能嗎?
我已經合併了SQL參數的參數化語句,但是我需要查詢的其他部分來改變我不認爲會用作參數化語句。
實施例:
<asp:SqlDataSource ID="SQLSolutionSource" runat="server"
SelectCommand="SELECT id, my_cat1, my_cat2, my_cat3, my_cat4, my_cat5, my_cat6 FROM [my_db].[dbo].[my_table]"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" />
我將具有使用命令的 「選擇ID,my_cat1,my_cat2,my_cat3,my_cat4,my_cat5,my_cat6」 部分約10 IF ELSE語句。
如果是代碼隱藏,我可以用上面的字符串創建一個變量,並將selectcommand改爲「」+ my_string +「FROM [my_db]。[dbo]。[my_table]」;
有沒有辦法在ASPX頁面上做到這一點?我嘗試過創建公共字符串,並使用SelectCommand =「<%= my_string%> FROM [my_db]。[dbo]。[my_table]」,但它似乎根本不起作用。
我知道人們可能會對安全含義和SQL注入感到疑惑,但是這個變量將被硬編碼,不允許用戶更改。我只是想簡化我的命令並清理我的代碼,所以如果我需要更改選定的項目,我只需要在一個變量中執行,而不是在10個不同的地方執行。
您可能希望完全從SqlDataSource移開...查看[my answer](http://stackoverflow.com/questions/43279371/updatecommand-parameter-value-always-a-string/43280341#43280341)to這個其他問題。 – mason
謝謝,但我沒有尋找替代數據實現,只是我的問題的答案。 –
爲什麼不呢? SqlDataSource非常糟糕。 – mason