【发布时间】:2017-09-03 03:27:23
【问题描述】:
我知道这在代码隐藏中是可能的,但是在那里更改 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=" FROM [my_db].[dbo].[my_table]" 但它似乎根本不起作用。
我知道人们可能会对安全隐患和 SQL 注入感到疑惑,但此变量将是硬编码的,并且不允许用户更改。我只是想简化我的命令并清理我的代码,所以如果我需要更改选定的项目,我只需要在一个变量中进行,而不是 10 个不同的地方。
【问题讨论】:
-
您可能希望完全摆脱 SqlDataSource...请参阅 my answer 到另一个问题。
-
谢谢,但我不是在寻找替代数据实现,只是为了回答我的问题。
-
为什么不呢? SqlDataSource 很糟糕。
标签: c# sql asp.net selectcommand