WebMatrix 3-使用DB2的WebGrid和ADO.NET数据集

WebMatrix 3-使用DB2的WebGrid和ADO.NET数据集,db2,webmatrix,webgrid,Db2,Webmatrix,Webgrid,我正在使用WebMatrix查询DB2服务器。我想它会更容易快速,概念验证相关的任务。。。但至少可以说,使用DB2而不是它的内置提供者是一个挑战 我知道我的结果会回来,因为我可以很好地遍历我的数据集并查看结果 我正在尝试使用WebMatrix中的内置WebGrid()函数来显示结果并不断出现错误: CS1502:最适合的重载方法 'System.Web.Helpers.WebGrid.WebGrid(System.Collections.Generic.IEnumerable, System.C

我正在使用WebMatrix查询DB2服务器。我想它会更容易快速,概念验证相关的任务。。。但至少可以说,使用DB2而不是它的内置提供者是一个挑战

我知道我的结果会回来,因为我可以很好地遍历我的数据集并查看结果

我正在尝试使用WebMatrix中的内置WebGrid()函数来显示结果并不断出现错误:

CS1502:最适合的重载方法 'System.Web.Helpers.WebGrid.WebGrid(System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerable、string、int、bool、, bool,string,string,string,string,string,string,string)'has 一些无效的参数

我的代码基本上是:

OleDbConnection conn = new OleDbConnection(connString);
DataTable td = new DataTable;
OleDbDataAdapter da = new OleDbDataAdapter("SELECT USER, GROUP FROM DBO.TEST", connString);
ds = new DataSet();
da.Fill(ds);

var results = new WebGrid(ds.Tables[0].Rows);
当然,它的失败在于:

var results = new WebGrid(ds.Tables[0].Rows);

任何帮助或指导都将不胜感激。我假设我需要将其转换为System.Collections.Generic.IEnumerable,但不知道如何实现…?

无法将数据表传递到WebGrid。WebGrid需要一个具有公共属性的可枚举项,可以将其用作列名。您可以做的是使用将数据表的内容投影到更合适的形式中。WebGrid将接受:

OleDbConnection conn=新的OleDbConnection(connString);
DataTable td=新的DataTable;
字符串查询=@“从DBO.TEST中选择用户、组”;
OleDbDataAdapter da=新的OleDbDataAdapter(查询,连接字符串);
da.填充(dt);
var data=dt.AsEnumerable().Select(r=>new{
用户=r.字段(“用户”),
组=r.字段(“组”)
});
WebGrid结果=新的WebGrid(数据);
OleDbConnection conn = new OleDbConnection(connString);
DataTable td = new DataTable;
string query = @"SELECT USER, GROUP FROM DBO.TEST";
OleDbDataAdapter da = new OleDbDataAdapter(query, connString);
da.Fill(dt);
var data = dt.AsEnumerable().Select(r => new { 
        User = r.Field<string>("USER"),
        Group = r.Field<string>("GROUP")
    });

WebGrid results = new WebGrid(data);