我想遍历记录集的行并获取值而又不知道列名:
var db = Database.Open("SomeDb");
var rows = db.Query("SELECT * FROM SomeTable");
var result = "";
foreach (var r in rows)
{
foreach (var f in r.<SomeProperty>) //Need help here
{
result += f + "/"; //Doing somthing with each value in each row
}
}
由于我不知道列名,或者列数太高以至于我不想对每个列进行特殊化,因此我需要另一种方法来获取内部foreach中每一行的不同值。 试图搜索此内容,但尚未找到任何答案。
因为可以通过res.First()。Columns找到列名,所以我可以遍历该列名列表,但是还有另一种简单的方法吗?
编辑: 问题的三个原因: 知识:记录集对象必须有一个方法或属性,我们可以使用该方法或属性来遍历每一列。 最小化代码:如果将输出写入表,如果需求发生变化,我只能更改SQL而不更改表定义。例如。如果要向表中添加“年龄”列,只需将其添加到SQL,然后使用res.First()。Headers列标题将“年龄”列自动添加到表中。 重用:当将大而不同的表写入XML时,只需更改输入表和输出文件即可轻松使用此方法。
答案 0 :(得分:0)
很抱歉,将其作为对评论的答复(没有足够的代表)。
在我看来,您需要为此使用强类型模型。我知道您说的是您不知道有多少列,但是如果您真的不知道列是什么,那么您如何希望对它们执行正确的操作?
我在这里想念东西吗?