我知道这在代码隐藏中是可能的,但是在那里更改 selectcommand 并绑定它会导致 gridview 刷新和排序问题,所以这不是我正在寻找的答案。
我已经为我的 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 %>" />
我将有大约 10 个 IF ELSE 语句,它们使用命令的“SELECT id、my_cat1、my_cat2、my_cat3、my_cat4、my_cat5、my_cat6”部分。
如果它是代码隐藏,我可以使用上面的字符串创建一个变量并将选择命令更改为 "" + my_string + " FROM [my_db].[dbo].[my_table]";
有没有办法在 ASPX 页面上做到这一点?我尝试创建公共字符串并使用 SelectCommand="<%= my_string %> FROM [my_db].[dbo].[my_table]" 但它似乎根本不起作用。
我知道人们可能想知道安全隐患和 SQL 注入,但是这个变量将被硬编码,并且不允许用户更改。我只是想简化我的命令并清理我的代码,所以如果我需要更改选定的项目,我只需要在一个变量中进行,而不是在 10 个不同的地方进行。