繁体   English   中英

如何获取列名WebMatrix.Data

[英]How to get column names WebMatrix.Data

试图找出如何从SQL语句中获取列名。 在网上看到一些说有用的东西,但肯定不会:

 var rows=db.Query("select * from users");

 <ul>
     @foreach(var col in rows)
     {
         <li>@col.name</li>
     }
 </ul>

仅当存在具有名称name的列时才显示该值,但是如果可能,我想要实际的列名称。

任何人都知道如何使用WebMatrix.Data获取所有列名称?

编辑:

看起来DynamicRecord类公开了列名,只是想知道它是如何应用的。 http://msdn.microsoft.com/en-us/library/webmatrix.data.dynamicrecord(v=vs.111).aspx

您可以使用GetDynamicMemberNames方法获取“列”(已转换为动态属性)

var rows = db.Query("select * from users");

 <ul>
     @foreach(var item in rows.First().GetDynamicMemberNames())
     {
         <li>row[item]</li>
     }
 </ul>

好吧,让我为你解释一下。

我已经创建了一个新项目,并在Visual Studio中对其进行了测试,但它确实有效。 您需要了解有关DynamicRecord和Columns属性的基础知识。

这是我用过的代码,

@{ 
    var db = Database.Open("StarterSite");
    var selectQuery = "SELECT * FROM UserProfile";
    var result = db.Query(selectQuery);
}

在HTML中我做了这个,

<div>
    @foreach (var row in result)
    {
        <p>@row.Columns[0]</p>
    }
</div>

执行时,由于DynamicRecord.Columns属性是IList<string>泛型类型,因此您应该了解可以通过简单的索引来读取它们的属性。 就像我所做的那样,它将读取发送给用户的字符串列表中的第一列。

现在当它执行时,由于第一列是电子邮件 ,它在屏幕上给了我以下输出。

在此输入图像描述

您也可以从列表中获取其他人。 只需更新索引号即可。 :-)

http://msdn.microsoft.com/en-us/library/webmatrix.data.dynamicrecord.columns(v=vs.111).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM