0

我在 Visual Studios 中使用下面的代码来遍历表中的每个 DataRow,并包含一个 If 语句来说明如果满足某个条件,它会创建一个 DataRow。然后,我希望将该 DataRow 添加到 dt_tempHold 中,以便稍后在我的程序中使用。是“dt_tempHold.Rows.Add(dr_EPA);” 不是在这里使用的东西,因为我收到一条错误消息说该行已经属于另一个表?我只想要一个 DataRow 的副本,它通过 ForEach 和 If 语句进入 DataTable。

        DataTable dt_tempHold = new DataTable();

        foreach (DataRow dr in ds_picsData.Tables["Placemnt"].Rows)
        {
            if (ds_spreadsheetdata.Tables["EPABase"].AsEnumerable().Any(t => t.Field<string>("EPA_ORG_ID") == dr["NAME"].ToString()))
            {

                DataRow dr_EPA = ds_spreadsheetdata.Tables["EPABase"].AsEnumerable().FirstOrDefault(t => t.Field<string>("EPA_ORG_ID") == dr["NAME"].ToString());

                dt_tempHold.Rows.Add(dr_EPA);

                dr["ADDR1"] = dr_EPA["Contact_address1"].ToString();
                dr["ADDR2"] = dr_EPA["Contact_address2"].ToString();
                dr["ADDR3"] = dr_EPA["Contact_address3"].ToString();
                dr["ADDR4"] = dr_EPA["Contact_address4"].ToString();
                dr["POSTCODE"] = dr_EPA["Postcode"].ToString();
                dr["PHONE"] = dr_EPA["Contact_number"].ToString();
                dr["EMAIL"] = dr_EPA["Contact_email"].ToString();
                dr["NAME"] = dr_EPA["EP_Assessment_Organisations"].ToString();



            }

        };
4

0 回答 0