I have 2 datasets, I want to join two datasets and save the result in a datatable.
I am able to join the tables but while saving the result in datatable it is throwing an error 'Unable to cast object of type 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]]' to type 'System.Data.DataTable'
My Code:
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;
}
Please Help