如何循环遍历ASP.NET中的数据库表(WebMatrix)?

时间:2012-04-25 07:31:22

标签: asp.net html razor webmatrix

已解决(我自己的问题):

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

这对我有用。


按照Microsoft网站here上的教程,我发现使用以下代码循环遍历表格行很容易。

 @{
   var data = Database.Open("FullDatabase").Query("SELECT * FROM Servers");
 } 

<div id="movieslist">
    <ol>
        @foreach(var row in data)
        {
        <li><a href="#">@row.Item</a></li>
        }
    </ol>
</div>

其中输出以下内容:

1. Virtual Machines

2. Physical Machines

3. Processors (CPU)

4. Memory (RAM)

5. OS Build

但是,“Servers”表只是数据库中的众多表之一。我喜欢做的是这样的事情:

 @{
   var database = Database.Open("FullDatabase")
 } 

<div id="movieslist">
    <ol>
        @foreach(var table in database)
        {
        var data = database.Query("SELECT * FROM " + table);
            @foreach(var row in data)
            {
            <li><a href="#">@row.Item</a></li>
            }
         }
    </ol>
</div>

这样的事情可能吗?如果是这样的话?非常感谢。

1 个答案:

答案 0 :(得分:0)

首先,这只是你为了娱乐而做的事情,而且永远不会出现在制作网站上,因为你应该只检索你真正想要的东西,而不是浪费更多的带宽/时间来消耗你不需要的所有东西

其次,您始终可以查询系统数据并获取所有表到板,您只需发出一个SELECT语句,如:

SELECT name FROM [sysobjects] WHERE xtype = 'u';

SELECT name FROM [sys].[objects] WHERE type_desc = 'USER_TABLE';

SELECT table_name FROM [information_schema].[tables];

它们都是相同的,具体取决于您使用的SQL版本......

因此,您的database查询将如下所示:

var database = Database
                  .Open("FullDatabase")
                  .Query("SELECT name FROM [sysobjects] WHERE xtype = 'u'");