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