正如问题所说我试图从数据表填充视图中的表。到目前为止,这是我在控制器中的代码:
DataSet dsTemplates = new DataSet();
string qryTemplets = "";
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
conn.Open();
SqlDataAdapter daTemplate = new SqlDataAdapter(qryTemplets, conn);
daTemplate.Fill(dsTemplates, "FileInfo");
DataTable dtTemplates = new DataTable();
dtTemplates = dsTemplates.Tables[0];
List<Models.GameModels.UserList> tables = dtTemplates.Rows.AsEnumerable()
.Select(t => new Models.GameModels.UserList
{
Name = row["Name"],
Record = row["Record"]
})
.ToList();
conn.Close();
return View(tables);
它给了我以下例外:
'System.Data.DataRowCollection'不包含'AsEnumerable'的定义,并且最好的扩展方法重载'System.Data.DataTableExtensions.AsEnumerable(System.Data.DataTable)'有一些无效的参数
这是渲染具有多行的表的最佳方法吗?我的错误有解决方法吗?提前致谢。 我还能做什么?
答案 0 :(得分:2)
这是将行投影到UserList
对象的正确方法:
List<UserList> tables = dtTemplates.AsEnumerable()
.Select(t => new UserList
{
Name = t["Name"],
Record = t["Record"]
}).ToList();