【发布时间】:2019-08-15 10:28:36
【问题描述】:
我有 2 个数据集,我想连接两个数据集并将结果保存在数据表中。
我可以加入表格,但是在将结果保存在数据表中时会引发错误 '无法转换类型为 d__38 的对象 4[System.Data.DataRow,System.Data.DataRow,System.String,f__AnonymousType0 7[System.String,System.String,System.Int32,System.Int32, System.String,System.String,System.String]]' 输入'System.Data.DataTable'
我的代码:
private DataSet joindatasets(DataSet ds1, DataSet dsHeader)
{
DataTable dt;
DataSet ds = new DataSet();
DataTable dt1=new DataTable();
dt1.Columns.Add("PracticeCode", typeof(string));
dt1.Columns.Add("PracticeName", typeof(string));
dt1.Columns.Add("High", typeof(int));
dt1.Columns.Add("Medium", typeof(int));
dt1.Columns.Add("username", typeof(string));
dt1.Columns.Add("MIAlertHeader", typeof(string));
dt1.Columns.Add("MIAlertFooter", typeof(string));
if (dsHeader.Tables.Count > 0)
{
for (int i = 0; i <= dsHeader.Tables.Count - 1; i++)
{
dt = dsHeader.Tables[i];
var query = from table1 in ds1.Tables[0].AsEnumerable()
join table2 in dt.AsEnumerable()
on (string)table1["PracticeCode"] equals (string)table2["PracticeCode"]
select new
{
PracticeCode = (string)table1["PracticeCode"],
PracticeName = (string)table1["PracticeName"],
High = (int)table1["High"],
Medium = (int)table1["Medium"],
username = (string)table2["username"],
MIAlertHeader = (string)table2["MIAlertHeader"],
MIAlertFooter = (string)table2["MIAlertFooter"]
};
dt1 = (DataTable)query;
}
}
return ds;
}
请帮忙
【问题讨论】:
-
它们包含一个公共列 PracticeCode,我在其上应用内部连接,其余列不同