如何从表中获取动态列的数据

时间:2015-08-04 09:31:11

标签: sql dynamic multiple-columns

我有一个应用程序,用户根据需要选择一些列名。我必须从数据库中的表中获取这些列的值。我看了here,这正是我要找的。我有两个问题:

  1. 在帖子中,他们正在从代码中向DataTables添加列和数据。如何从数据库中获取此值?
  2. 在帖子中,作者正在使用DataTables。我被问到是否可以在不使用它们的情况下做同样的事情。有没有其他方法这样做?告诉我是否需要澄清其他任何内容。

1 个答案:

答案 0 :(得分:0)

我认为您需要选择表的列列表,因此请使用此查询(在某些数据库中有效):

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'yourTableName'
ORDER BY  ORDINAL_POSITION;

如果您想要一个带有动态列名列的SQL字符串,我建议您根据用户输入在运行时设置SQL字符串,或者使用SQL Server等数据库;您还可以使用动态SQL(使用EXEC命令)。像这样:

foreach(var column in columns)
    if (column.IsSelectedByUser)
        strColumns += column.Name;

strSql = 'SELECT ' + strColumns + ' FROM yourTableName';