0
此代码看起来应该起作用,实际上它编译并运行。但是,cmd.ExecuetReader()
(以及有记录)的记录未按预期添加到dt
。任何人都可以看到可能丢失的东西没有记录添加到Linq中的DataTable从DbCommand.ExecuteReader中选择
DataTable dt = new DataTable();
cmd.Connection.Open();
cmd.ExecuteReader().Cast<DbDataRecord>().Cast<DataRow>().Select(r=>dt.Rows.Add(r.ItemArray));
或者说,有没有这样做,当然是使用LINQ :)
感谢。其实刚刚发现这个演员:Cast()。演员()在运行时抛出一个异常。所以这不起作用。需要另一种方法。但是当linq应该能够做到这一点时,我讨厌做读者的愚蠢迭代。 –
user259286
2011-04-14 03:37:44
下面是答案,非linq答案。 DataTable dt = new DataTable(); cmd.Connection.Open(); var x = cmd.ExecuteReader(); dt.Load(x,LoadOption.OverwriteChanges); – user259286 2011-04-14 03:52:58
好。我正在研究一种将行集合添加到DataTable的方式,因为我对它们不是很友好。他们通常导致糟糕的OO设计。 – Andre 2011-04-14 04:01:09