//获取发票号码发票代码的集合 List<string> lifphm = new List<string>(); List<string> lifpdm = new List<string>(); for (int i = 0; i < dt.Rows.Count; i++) { lifphm.Add(dt.Rows[i][vFPHM].ToString()); lifpdm.Add(dt.Rows[i][vFPDM].ToString()); } //将ds发票代码号码列数据去重 string[] ColounNames = new string[2]; ColounNames[0] = vFPHM; ColounNames[1] = vFPDM; DataTable dta = dt.DefaultView.ToTable(true, ColounNames); //去重 ds.Tables.Clear(); //清空ds内存 ds.Tables.Add(dta); //将去重后的dt重新放进Dataset中 //从中间表中查询发票代码和号码为上述数据的集合 List<string> strfphm = new List<string>(); List<string> strfpdm = new List<string>(); foreach (DataRow dr in ds.Tables[0].Rows) { FPHM = dr[vFPHM].ToString(); FPDM = dr[vFPDM].ToString(); string sql = string.Format("select * from PTGS_TEMPDATA Where PT_FPHM='{0}' and PT_FPDM='{1}'", FPHM, FPDM); LogFile("查询出来的sql:" + sql); DataSet dts = db.ExecuteDataSet(sql); for (int a = 0; a < dts.Tables[0].Rows.Count; a++) { strfpdm.Add(dts.Tables[0].Rows[a]["PT_FPDM"].ToString()); strfphm.Add(dts.Tables[0].Rows[a]["PT_FPHM"].ToString()); } } //对两个集合进行比较 if (lifpdm.Count == strfpdm.Count && lifpdm.Count(t => !strfpdm.Contains(t)) == 0 && lifphm.Count == strfphm.Count && lifphm.Count(c => !strfphm.Contains(c)) == 0) { LogFile("执行成功"); return "0"; } else { LogFile("执行成功,有发票信息数据未选全"); return "数据不正确"; }