连接两个数据表时出现意外结果?
object combinedrows = from dt1 in DsResults.Tables[0].AsEnumerable()
join dt2 in DsResults.Tables[1].AsEnumerable() on dt1.Field<string>("MethodName") equals dt2.Field<string>("MethodName")
select new { dt1, dt2 };
DataTable finaldt = new DataTable("FinalTable");
finaldt.Columns.Add(new DataColumn("sp",typeof(string)));
finaldt.Columns.Add(new DataColumn("Method",typeof(string)));
finaldt.Columns.Add(new DataColumn("Class",typeof(string)));
finaldt.Columns.Add(new DataColumn("BLLMethod",typeof(string)));
DataRow newrow = finaldt.NewRow();
finaldt.Rows.Add((DataRow)combinedrows);
dataGridView5.DataSource = finaldt;
上述编码给出第一列的结果如下: System.Linq.Enumerable+d__614[System.Data.DataRow,System.Data.DataRow,System.String,<>f__AnonymousType0
2[System.Data.DataRow,System.Data.DataRow ]]
object combinedrows = from dt1 in DsResults.Tables[0].AsEnumerable()
join dt2 in DsResults.Tables[1].AsEnumerable() on dt1.Field<string>("MethodName") equals dt2.Field<string>("MethodName")
select new { dt1, dt2 };
DataTable finaldt = new DataTable("FinalTable");
finaldt.Columns.Add(new DataColumn("sp",typeof(string)));
finaldt.Columns.Add(new DataColumn("Method",typeof(string)));
finaldt.Columns.Add(new DataColumn("Class",typeof(string)));
finaldt.Columns.Add(new DataColumn("BLLMethod",typeof(string)));
DataRow newrow = finaldt.NewRow();
finaldt.Rows.Add((DataRow)combinedrows);
dataGridView5.DataSource = finaldt;
The above coding gives the result in the first column as follows:
System.Linq.Enumerable+d__614[System.Data.DataRow,System.Data.DataRow,System.String,<>f__AnonymousType0
2[System.Data.DataRow,System.Data.DataRow]]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@Prem:在了解您的代码后,我确信您会得到类似
“无法转换类型为 'd__61
4[System.Data.DataRow,System.Data.DataRow,System.String,<>f__AnonymousType0”的 异常
2[System.Data.DataRow,System.Data.DataRow]]' 键入“System.Data.DataRow”。on
Finaldt.Rows.Add((DataRow)combinedrows);行,
因此您必须将 Linq 返回结果存储在 var 中,然后您可以通过循环将行添加到新的 DataTable 中。
您的代码应该
代表您进行尝试,我已检查它是否正在运行,如果没有,则发布错误。
为了从 DataTable 中仅获取特定列,您需要更改 LINQ,如
要检索数据,您需要执行以下操作:
@Prem: After understanding your code i am sure you will get exception like
"Unable to cast object of type 'd__61
4[System.Data.DataRow,System.Data.DataRow,System.String,<>f__AnonymousType0
2[System.Data.DataRow,System.Data.DataRow]]' to type 'System.Data.DataRow'."on
finaldt.Rows.Add((DataRow)combinedrows); line
so you must store Linq return result in var and then you can add row to new DataTable by loop.
your code should be
try it out on the behalf of you i have checked it is running if not then post the error.
For to get only a particular column from DataTable you need to change LINQ like
and for Retrieving data you need to do:
试试这个
try this