System.Data.DataRowCollection'不包含'Cast'的定义

时间:2015-06-01 10:55:36

标签: c#

我被困在这里,以下方法显示错误

  

'System.Data.DataRowCollection'不包含的定义   'cast'和最好的扩展方法重载   'System.Data.EnumerableRowCollectionExtensions.Cast(System.Data.EnumerableRowCollection)'   有一些无效的论点

如何解决这个问题我试过datatable.AsEnumerable但不会工作。代码中的粗体显示此错误。 请帮帮我。

这是代码

   public void DataExport(string SelectQuery)// server code
   {
       try
       {
           using (var dt = new DataTable())
           {
               using (var da = new SqlDataAdapter(SelectQuery, con))
               {
                   da.Fill(dt);
                   var rows =
                       **from dr in dt.Rows.Cast<DataRow>()**
                       select String.Join(
                           ",",
                           **from dc in dt.Columns.Cast<DataColumn>()**
                           let t1 = Convert.IsDBNull(dr[dc]) ? "" : dr[dc].ToString()
                           let t2 = t1.Contains(",") ? String.Format("\"{0}\"", t1) : t1
                           select t2);



                   using (var sw = new StreamWriter("somepath"))
                   {
                       // sw.WriteLine(header);
                       foreach (var row in rows)
                       {
                           sw.WriteLine(row);
                       }
                       sw.Close();
                   }
               }
           }
       }
       catch (Exception e) { Console.WriteLine(e.Message); }
   }

1 个答案:

答案 0 :(得分:14)

您必须在文件中添加System.Linq引用。

using System.Linq;

Enumerable.Cast Method