[英]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.