C# 如何从WebMatrix查询中获取列?
这个标题相当自我嘲讽,看起来应该是一个简单的任务,但我尝试过的一切都没有奏效: 这是我的代码,工作正常,但表是可变的,因此我需要知道它返回的列:C# 如何从WebMatrix查询中获取列?,c#,webmatrix,C#,Webmatrix,这个标题相当自我嘲讽,看起来应该是一个简单的任务,但我尝试过的一切都没有奏效: 这是我的代码,工作正常,但表是可变的,因此我需要知道它返回的列: var data = db.Query("SELECT * FROM " + Table); 以下是我尝试过的技术列表: data.GetType().GetProperties().ToList(); // prints 'Int32 Count' and 'System.Object Item [Int32]' data.GetDynamic
var data = db.Query("SELECT * FROM " + Table);
以下是我尝试过的技术列表:
data.GetType().GetProperties().ToList();
// prints 'Int32 Count' and 'System.Object Item [Int32]'
data.GetDynamicMemberNames()
// Error: '...IEnumerable<dynamic> does not have a definition for GetDynamicMemberNames'
// I also tried using System.Linq and System.Dynamic
I could also iterate through a loop, but there's got to be a more elegant way, right?
data.GetType().GetProperties().ToList();
//打印“Int32计数”和“System.Object项[Int32]”
data.GetDynamicMemberNames()
//错误:“…IEnumerable没有GetDynamicMemberNames的定义”
//我还尝试使用System.Linq和System.Dynamic
我也可以通过循环进行迭代,但必须有一种更优雅的方式,对吗?
我想以列名的列表结束。列表cols=data.First().Columns代码>
事实证明,它是一种IList
类型
但是,它是数据结果的单个行的属性(一行是DynamicRecord数据类型),因此不幸的是,它无法从结果对象访问(在我的示例中为data
)。要访问它,您需要获得一行,而.First()
似乎是一种非常简单的方法
这是我的全部代码,以防有人需要它:
WebMatrix.Data.Database db = new WebMatrix.Data.Database();
db.Open("ConnectionString");
var data = db.Query("SELECT * FROM " + Table);
List<String> cols = data.First().Columns;
WebMatrix.Data.Database db=new WebMatrix.Data.Database();
db.开放(“连接字符串”);
var data=db.Query(“从”+表中选择*);
List cols=data.First()列;