在我的应用中,任何用户都可以配置要显示,重新排序和调整列大小的列。为了保存每个用户设置,我有几个表格。
其中一个名为UserColumns,如下所示:
Id | UserId | ColumnName | DefaultWidth | Width | SortOrder
有没有办法,没有动态生成选择字符串并执行它,我可以从表中选择列,但只能选择UserColumns表中为该特定用户存在的列?< / p>
所以像ApplicationErrors这样的表:
Id | ExceptionMessage | StackTrace | LogDate
id = 1的用户已选择这些列: StackTrace,LogDate。
所以我想得到一个只有StackTrace和LogDate的结果集,按UserColumns表中SortOrder列的值排序。
这可能吗?
答案 0 :(得分:3)
为了使用未知列进行选择,您需要动态生成查询并执行它。
如果您只有少数用户,那么您可以创建一个视图,并使用创建一个将视图链接到用户的表,并且您可以根据视图进行选择,但是,您的应用程序将希望这样做,因为它可以使用变量表动态创建查询。