从MVC中的DataTable填充表

时间:2014-11-29 19:42:11

标签: c# .net asp.net-mvc

正如问题所说我试图从数据表填充视图中的表。到目前为止,这是我在控制器中的代码:

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)'有一些无效的参数

这是渲染具有多行的表的最佳方法吗?我的错误有解决方法吗?提前致谢。 我还能做什么?

1 个答案:

答案 0 :(得分:2)

这是将行投影到UserList对象的正确方法:

List<UserList> tables = dtTemplates.AsEnumerable()
    .Select(t => new UserList
    {
        Name = t["Name"],
        Record = t["Record"]
    }).ToList();